改变自动编号的起始值和自增量(access)
ALTER TABLE 表名 ALTER COLUMN 字段名 COUNTER (初试值,自增值)
或
ALTER TABLE 表名 ALTER COLUMN 字段名 AUTOINCREMENT(初试值,自增值)
如:ALTER TABLE user ALTER COLUMN id COUNTER (1,3)
如果表中无数据,也可以将文本或数字字段等改为自动编号
(sqlserver 自动编号类型为identity)
****************************************************
取user表最新十条推荐的gsname字段不重复的记录:
sql="select top 10 * from user where id not in(select top 10 a.id from user as a,user as b where a.gsname=b.gsname and a.id<>b.id order by a.id desc)order by tuijian desc,id desc"
****************************************************
SQL中的日期处理:
一天内登陆记录
select * from 历史记录表 where (cast(convert(char(10),现在时间,120) as datetime)-cast(convert(char(10),登录时间,120) as datetime))<=1 天 order by 登录时间 desc
--------------
DATEADD函数
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
例:
select * from 历史记录表 where convert(char(10),登录时间,120)=convert(char(10),dateadd(d,-1,getdate()),120)
--------------
DateDiff函数
1、数据库的问题,Access和Sql读取时间的函数不一样,Now()只能在Access中使用,在Sql中只能使用GetDate()函数来获取系统时间,相应的其他函数如Time(),反正大家在调试的时候注意
2、DateDiff('d',Time1,Time2)函数,在ACCESS下可以使用的到了SQL就不能使用
有区别,具体是:
Access中:DateDiff('d',Time1,Time2)
Sql server中:DateDiff(d,Time1,Time2)
注意在SQL中不需要加引号。
sql server中的DateDiff函数
Select PigID,PigName,RingNum,Sex,PigOwner,PostDate,Passed FROM HZ_Pig Where DateDiff(m,'ShootTime',PostDate)<=0
*****************************************************
判断字段是否为空:
name is not null
name is null
*****************************************************
SQL SERVER 和 ACCESS
当在sql查询语句中某一表名或字段名为sql关键字时,用方括号[]括起来,否则不能查询。
Oracle和DB2
用双引号“”括起来,sql server中有[]和"",但是""需要设置。
insert into sms_message(userid,mobile,content,state,[time]) values ('"&session("id")&"','"&mobile&"','"&message&"',0,'"&now()&"')
conn.execute(sql)
字段为data关键字:
sql="select job_qz.id as id,job_qz.date as [date],gsname,name from job_zp,user where job_zp.userid=user.id order by job_zp.id desc"
*****************************************************
sql中数据类型转换
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。
CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
例子:
CAST(ytd_sales AS char(20))
CONVERT(char(20), ytd_sales)
****************************************************
将三个字段拼成一个字段当唯一性的主键,利用完之后再拆开
select substring(id,1,CHARINDEX('|',id)-1)
as 姓名,
substring(replace(id,substring(id,1,CHARINDEX('|',id)-1)+'|',''),1,CHARINDEX('|',replace(id,substring(id,1,CHARINDEX('|',id)-1)+'|',''))-1)
as 层次,
substring(id,PATINDEX('%||%',id)+2,len(id))
as 身份证号,
服务站,性别,专业,平均分,英语成绩,论文成绩,联系电话,手机,degreedealflg
from (
select ltrim(rtrim(姓名))+'|'+ltrim(rtrim(层次))+'||'+ltrim(rtrim(身份证号)) as id,服务站,性别,专业,平均分,英语成绩,论文成绩,联系电话,手机
from qifeitmp
) as temp1,(
select ltrim(rtrim(studentname))+'|'+ltrim(rtrim(studykind))+'||'+ltrim(rtrim(cardid)) as id2,degreedealflg
from T_graduate_stuinfo
where degreedealflg=0
) as temp2
where temp1.id=temp2.id2
*******************************************************
ALTER TABLE 表名 ALTER COLUMN 字段名 COUNTER (初试值,自增值)
或
ALTER TABLE 表名 ALTER COLUMN 字段名 AUTOINCREMENT(初试值,自增值)
如:ALTER TABLE user ALTER COLUMN id COUNTER (1,3)
如果表中无数据,也可以将文本或数字字段等改为自动编号
(sqlserver 自动编号类型为identity)
****************************************************
取user表最新十条推荐的gsname字段不重复的记录:
sql="select top 10 * from user where id not in(select top 10 a.id from user as a,user as b where a.gsname=b.gsname and a.id<>b.id order by a.id desc)order by tuijian desc,id desc"
****************************************************
SQL中的日期处理:
一天内登陆记录
select * from 历史记录表 where (cast(convert(char(10),现在时间,120) as datetime)-cast(convert(char(10),登录时间,120) as datetime))<=1 天 order by 登录时间 desc
--------------
DATEADD函数
在向指定日期加上一段时间的基础上,返回新的 datetime 值。
语法
DATEADD ( datepart , number, date )
例:
select * from 历史记录表 where convert(char(10),登录时间,120)=convert(char(10),dateadd(d,-1,getdate()),120)
--------------
DateDiff函数
1、数据库的问题,Access和Sql读取时间的函数不一样,Now()只能在Access中使用,在Sql中只能使用GetDate()函数来获取系统时间,相应的其他函数如Time(),反正大家在调试的时候注意
2、DateDiff('d',Time1,Time2)函数,在ACCESS下可以使用的到了SQL就不能使用
有区别,具体是:
Access中:DateDiff('d',Time1,Time2)
Sql server中:DateDiff(d,Time1,Time2)
注意在SQL中不需要加引号。
sql server中的DateDiff函数
Select PigID,PigName,RingNum,Sex,PigOwner,PostDate,Passed FROM HZ_Pig Where DateDiff(m,'ShootTime',PostDate)<=0
*****************************************************
判断字段是否为空:
name is not null
name is null
*****************************************************
SQL SERVER 和 ACCESS
当在sql查询语句中某一表名或字段名为sql关键字时,用方括号[]括起来,否则不能查询。
Oracle和DB2
用双引号“”括起来,sql server中有[]和"",但是""需要设置。
insert into sms_message(userid,mobile,content,state,[time]) values ('"&session("id")&"','"&mobile&"','"&message&"',0,'"&now()&"')
conn.execute(sql)
字段为data关键字:
sql="select job_qz.id as id,job_qz.date as [date],gsname,name from job_zp,user where job_zp.userid=user.id order by job_zp.id desc"
*****************************************************
sql中数据类型转换
CAST 和 CONVERT
将某种数据类型的表达式显式转换为另一种数据类型。
CAST 和 CONVERT 提供相似的功能。
语法
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
例子:
CAST(ytd_sales AS char(20))
CONVERT(char(20), ytd_sales)
****************************************************
将三个字段拼成一个字段当唯一性的主键,利用完之后再拆开
select substring(id,1,CHARINDEX('|',id)-1)
as 姓名,
substring(replace(id,substring(id,1,CHARINDEX('|',id)-1)+'|',''),1,CHARINDEX('|',replace(id,substring(id,1,CHARINDEX('|',id)-1)+'|',''))-1)
as 层次,
substring(id,PATINDEX('%||%',id)+2,len(id))
as 身份证号,
服务站,性别,专业,平均分,英语成绩,论文成绩,联系电话,手机,degreedealflg
from (
select ltrim(rtrim(姓名))+'|'+ltrim(rtrim(层次))+'||'+ltrim(rtrim(身份证号)) as id,服务站,性别,专业,平均分,英语成绩,论文成绩,联系电话,手机
from qifeitmp
) as temp1,(
select ltrim(rtrim(studentname))+'|'+ltrim(rtrim(studykind))+'||'+ltrim(rtrim(cardid)) as id2,degreedealflg
from T_graduate_stuinfo
where degreedealflg=0
) as temp2
where temp1.id=temp2.id2
*******************************************************