千家信息网

sql server对于日期的处理

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,以下是SQL 日期截取 & SQL Server日期比较日期查询常用语句select CONVERT(varchar, getdate(), 120 )2004-09-12 11:06:08selec
千家信息网最后更新 2026年11月01日sql server对于日期的处理

以下是SQL 日期截取 & SQL Server日期比较日期查询常用语句

select CONVERT(varchar, getdate(), 120 )

2004-09-12 11:06:08

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

20040912110608

select COUNVRT(varchar(12) , getdate(), 23 )

2008-04-01

select CONVERT(varchar(12) , getdate(), 111 )

2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )

20040912

select CONVERT(varchar(12) , getdate(), 102 )

2004.09.12

其它不常用的日期格式转换方法:

select CONVERT(varchar(12) , getdate(), 101 )

09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )

12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )

12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )

12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )

12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )

09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )

11:06:08

select CONVERT(varchar(12) , getdate(), 109 )

09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )

09-12-2004

select CONVERT(varchar(12) , getdate(), 113 )

12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )

11:06:08.177

SQL Server 中截取日期的日期部分:

print convert(varchar(10),getdate(),120)

SQL Server 中截取日期的时间部分:

print convert(varchar(8),getdate(),108)

SQL Server中截取日期的"日期+时间"部分:

select CONVERT(varchar(16), getDate(),120)

SQL Server中截取日期型字段的日期部分:

convert(varchar(10),getdate(),20)

SQL Server中截取日期型字段的时间部分:

convert(varchar(10),getdate(),8)

以下是使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期

这是计算一个月第一天的SQL 脚本:

SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

本周的星期一

这里我是用周(wk)的时间间隔来计算哪一天是本周的星期一。

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

一年的第一天

现在用年(yy)的时间间隔来显示这一年的第一天。

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

季度的第一天

假如你要计算这个季度的第一天,这个例子告诉你该如何做。

SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

当天的半夜

曾经需要通过getdate()函数为了返回时间值截掉时间部分,就会考虑到当前日期是不是在半夜。假如这样,这个例子使用DATEDIFF和DATEADD函数来获得半夜的时间点。

SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

上个月的最后一天

这是一个计算上个月最后一天的例子。它通过从一个月的最后一天这个例子上减去3毫秒来获得。有一点要记住,在Sql Server中时间是精确到3毫秒。这就是为什么我需要减去3毫秒来获得我要的日期和时间。

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

去年的最后一天

连接上面的例子,为了要得到去年的最后一天,你需要在今年的第一天上减去3毫秒。

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

本月的最后一天

现在,为了获得本月的最后一天,我需要稍微修改一下获得上个月的最后一天的语句。修改需要给用DATEDIFF比较当前日期和"1900-01-01"返回的时间间隔上加1。通过加1个月,我计算出下个月的第一天,然后减去3毫秒,这样就计算出了这个月的最后一天。这是计算本月最后一天的SQL脚本。

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

本年的最后一天

你现在应该掌握这个的做法,这是计算本年最后一天脚本

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))。

本月的第一个星期一

这里我要计算这个月的第一个星期一。这是计算的脚本。

select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate()) ), 0)

附录,其他日期处理方法

1)去掉时分秒

declare @ datetime

set @ = getdate() --'2003-7-1 10:00:00'

SELECT @,DATEADD(day, DATEDIFF(day,0,@), 0)

2)显示星期几

select datename(weekday,getdate())

3)如何取得某个月的天数

declare @m int

set @m=2 --月份

select datediff(day,'2003-'+cast(@m as varchar)+'-15' ,'2003-'+cast(@m+1 as varchar)+'-15')

另外,取得本月天数

select datediff(day,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate()) as varchar)+'-15' ,cast(month(GetDate()) as varchar)+'-'+cast(month(GetDate())+1 as varchar)+'-15')

或者使用计算本月的最后一天的脚本,然后用DAY函数区最后一天

SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)))

4)判断是否闰年:

SELECT case day(dateadd(mm, 2, dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)))) when 28 then '平年' else '闰年' end

或者

select case datediff(day,datename(year,getdate())+'-02-01',dateadd(mm,1,datename(year,getdate())+'-02-01'))

when 28 then '平年' else '闰年' end

5)一个季度多少天

declare @m tinyint,@time smalldatetime

select @m=month(getdate())

select @m=case when @m between 1 and 3 then 1

when @m between 4 and 6 then 4

when @m between 7 and 9 then 7

else 10 end

select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

select datediff(day,@time,dateadd(mm,3,@time))

select * from pms_t_TMonPersonalPerformance

WHERE VisitDate between cast('2015-01-01 23:22:12' as datetime) and cast('2015-03-01 22:23:15' as datetime)

convert转换

select * from pms_t_TMonPersonalPerformance WHERE VisitDate between CONVERT(datetime,'2014-01-01') and CONVERT(datetime,'2014-03-01')

取毫秒

select * from checkinout where userid='56409' and substring(convert(char(24),checktime,121),22,2) <> '00'

日期 时间 部分 例子 星期 脚本 这是 函数 季度 闰年 天数 字段 常用 平年 我要 方法 语句 处理 不同 精确 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海睿民互联网科技有限公司 厦门中拓互联网络科技有限公司 互联网 科技公司 深圳互联网络科技有限公司 奇酷互联网科技公司 腾讯科技 互联网女皇 润盈互联网科技 互联网科技类展会 盛创互联网科技有限公司 甘肃拓世互联网科技有限公司 济南华为互联网科技产业总部基地 互联网科技有哪些公司 港股科技和互联网 昭通互联网科技选哪家 高科技互联网套路 北京市互联网新科技 中国科技和美国互联网 美国五大互联网科技公司市值多少 互联网科技自媒体灵感 伍佰万互联网科技是干嘛的 中智农互联网科技 易互联网科技有限公司 上海喔噻互联网科技 受益于互联网科技的高速发展 深圳育鹏互联网科技有限公司招聘 青海科技产业互联网发展 燊美集互联网科技有限公司 长沙茂晟互联网科技有限公司 山东星卡互联网科技有限公司官网 互联网科技年终奖
0