SQL Server 取日期時間部分(轉載) 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都轉化成時間戳,得到的值也是時間戳。後把時間戳再轉化成時間就可以了

好的代碼像粥一樣,都是用時間熬出來的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章