sql语句中对datetime⽇期类型进⾏修改语句1:dateadd函数在向指定⽇期加上⼀段时间的基础上,返回新的 datetime 值:
有个表D_data,其中有字段D_time,内容格式“1/18/2010 5:32:24 AM ”(国外的数据库)
它记录了数据添加的时间,所以⽇期后⾯的时间是经常变动的。现在我只想改变前⾯的⽇期,后⾯的时间不变。
例如,我想把id⼤于2000的数据⽇期改成5天前的
语句:
update D_data set D_time = dateadd(day,-5,D_time) where id > 2000
update D_data set D_time = dateadd(dd,-5,D_time) where id > 2000
update D_data set D_time =D_time -5 where id > 2000
2:DATEDIFF 函数:
语法:DATEDIFF (datepart,startdate,enddate)
--查询当天:
select * from info where DateDiff(dd,datetime,getdate())=0
--查询24⼩时内的:
select * from info where DateDiff(hh,datetime,getDate())<=24
--本⽉记录
Select * FROM 表 Where datediff(month,[dateadd],getdate())=0
--本周记录
Select * FROM 表 Where datediff(week,[dateadd],getdate())=0
(说明:info为表名,datetime为数据库中的字段值)
3:SQL Server CONVERT() 函数
定义和⽤法
CONVERT() 函数是把⽇期转换为新数据类型的通⽤函数。
CONVERT() 函数可以⽤不同的格式显⽰⽇期/时间数据。
语法
CONVERT(data_type(length),data_to_be_converted,style)
data_type(length)规定⽬标数据类型(带有可选的长度)。
data_to_be_converted含有需要转换的值。
style规定⽇期/时间的输出格式。
可以使⽤的style值:
Style ID Style 格式
100 或者 0mon dd yyyy hh:miAM (或者 PM)
101mm/dd/yy
103dd/mm/yy
<
105dd-mm-yy
106dd mon yy
107Mon dd, yy
108hh:mm:ss
109 或者 9mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110mm-dd-yy
111yy/mm/dd
112yymmdd
113 或者 13dd mon yyyy hh:mm:ss:mmm(24h)
114hh:mi:ss:mmm(24h)
120 或者 20yyyy-mm-dd hh:mi:ss(24h)
121 或者 21yyyy-mm-dd hh:(24h)
126yyyy-mm-ddThh:(没有空格)
130dd mon yyyy hh:mi:ss:mmmAM
130dd mon yyyy hh:mi:ss:mmmAM
131dd/mm/yy hh:mi:ss:mmmAM
实例
下⾯的脚本使⽤ CONVERT() 函数来显⽰不同的格式。我们将使⽤ GETDATE() 函数来获得当前的⽇期/时间:CONVERT(VARCHAR(19),GETDATE())
select语句查询日期CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)
结果类似:
Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论