SQL Server 取日期时间部分(转载)

SQL Server 取日期时间部分

来源:https://www.cnblogs.com/jijm123/p/9821402.html

在本文中,GetDate()获得的日期由两部分组成,分别是今天的日期和当时的时间: Select GetDate()  用DateName()就可以获得相应的年、月、日,然后再把它们连接起来就可以了:

Select Datename(year,GetDate())+'-'+Datename(month,GetDate())+''+Datename(day,GetDate())

另外,DateName()还可以获得到小时、时间、秒、星期几、第几周,分别如下:

Select Datename(hour,GetDate()) Select Datename(minute,GetDate()) Select Datename(second,GetDate()) Select Datename(weekDay,GetDate()) Select Datename(week,GetDate())

计算startDate与endDate中的有效时间(比如朝九晚五)

case when DATEDIFF(day, startDate,endDate) >= 0 then DATEDIFF(day, startDate, mt.cancelDate) * 8 - DateName(HH, startDate) + DateName(HH, endDate) else  0 end

 

使用Convert()函数:

 

 

SELECT CONVERT(varchar(100), GETDATE(), 0) 05 9 2011 9:12AM

SELECT CONVERT(varchar(100), GETDATE(), 1) 05/09/11

SELECT CONVERT(varchar(100), GETDATE(), 2) 11.05.09

SELECT CONVERT(varchar(100), GETDATE(), 3) 09/05/11

SELECT CONVERT(varchar(100), GETDATE(), 4) 09.05.11

SELECT CONVERT(varchar(100), GETDATE(), 5) 09-05-11

SELECT CONVERT(varchar(100), GETDATE(), 6) 09 05 11

SELECT CONVERT(varchar(100), GETDATE(), 7) 05 09, 11

SELECT CONVERT(varchar(100), GETDATE(), 8) 09:13:14

SELECT CONVERT(varchar(100), GETDATE(), 9) 05 9 2011 9:13:14:670AM

SELECT CONVERT(varchar(100), GETDATE(), 10) 05-09-11

SELECT CONVERT(varchar(100), GETDATE(), 11) 11/05/09

SELECT CONVERT(varchar(100), GETDATE(), 12) 110509

SELECT CONVERT(varchar(100), GETDATE(), 13) 09 05 2011 09:13:14:670

SELECT CONVERT(varchar(100), GETDATE(), 14) 09:13:14:670

SELECT CONVERT(varchar(100), GETDATE(), 20) 2011-05-09 09:13:14

SELECT CONVERT(varchar(100), GETDATE(), 21) 2011-05-09 09:13:14.670

SELECT CONVERT(varchar(100), GETDATE(), 22) 05/09/11 9:15:33 AM

SELECT CONVERT(varchar(100), GETDATE(), 23) 2011-05-09

SELECT CONVERT(varchar(100), GETDATE(), 24) 09:15:33

SELECT CONVERT(varchar(100), GETDATE(), 25) 2011-05-09 09:15:33.140

SELECT CONVERT(varchar(100), GETDATE(), 100) 05 9 2011 9:15AM

SELECT CONVERT(varchar(100), GETDATE(), 101) 05/09/2011

SELECT CONVERT(varchar(100), GETDATE(), 102) 2011.05.09

SELECT CONVERT(varchar(100), GETDATE(), 103) 09/05/2011

SELECT CONVERT(varchar(100), GETDATE(), 104) 09.05.2011

SELECT CONVERT(varchar(100), GETDATE(), 105) 09-05-2011

SELECT CONVERT(varchar(100), GETDATE(), 106) 09 05 2011

SELECT CONVERT(varchar(100), GETDATE(), 107) 05 09, 2011

SELECT CONVERT(varchar(100), GETDATE(), 108) 09:16:38

SELECT CONVERT(varchar(100), GETDATE(), 109) 05 9 2011 9:16:38:543AM

SELECT CONVERT(varchar(100), GETDATE(), 110) 05-09-2011

SELECT CONVERT(varchar(100), GETDATE(), 111) 2011/05/09

SELECT CONVERT(varchar(100), GETDATE(), 112) 20110509

SELECT CONVERT(varchar(100), GETDATE(), 113) 09 05 2011 09:17:19:857

SELECT CONVERT(varchar(100), GETDATE(), 114) 09:17:19:857

SELECT CONVERT(varchar(100), GETDATE(), 120) 2011-05-09 09:17:19

SELECT CONVERT(varchar(100), GETDATE(), 121) 2011-05-09 09:17:19.857

SELECT CONVERT(varchar(100), GETDATE(), 126) 2011-05-09T09:17:19.857

SELECT CONVERT(varchar(100), GETDATE(), 130) 6 ????? ??????? 1432 9:17:19:857AM

SELECT CONVERT(varchar(100), GETDATE(), 131) 6/06/1432 9:17:19:857AM

给为空的字段赋值

UPDATE TableName set colName='' where colName is null

用sql语句把时间a与b的差加到c上赋值给d

CONVERT(varchar(100), dateadd(s,(datediff(s,a,'1970-01-01 00:00:00')-datediff(s,b,'1970-01-01 00:00:00')+datediff(s,c,'1970-01-01 00:00:00')),'1970-01-01 00:00:00'),20)
CONVERT(varchar(100),date,20)
dateadd(s,date1,date2)
datediff(s,date1,date2)

思路为把abc都转化成时间戳,得到的值也是时间戳。后把时间戳再转化成时间就可以了

好的代码像粥一样,都是用时间熬出来的
posted @   hao_1234_1234  阅读(1029)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2019-01-12 'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。(转载)
2019-01-12 yarn install npm install (转载)
点击右上角即可分享
微信分享提示