朋友們,大家在使用SQL Server數據庫時,經常會碰到獲取日期時間的問題,我們使用select getdate()獲取當前日期時間,在查詢分析器上看,返回的數據格式可能類似2018-11-17 11:08:22.970,這看上去還算是正常的。返回的格式跟本機設置的日期時間格式有一定關系。
如果服務器設置的日期時間格式比較另類,返回的日期時間格式看上去亂亂的,在程序中調用時,因為調用接口的原因,可能返回的數據格式更是亂。為了統一,有不少朋友都想直接轉換成字符串格式,這樣返回的時候就不存在格式亂的問題。
比如要返回xxxx-xx-xx這樣的格式,可以使用SELECT CONVERT(varchar(100), GETDATE(), 23),這樣就會舒服很多。我下面列出轉換成字符串的多種格式。手機上直接看腳本可能會有點亂,我先截圖出來,後面再上腳本:
下面是對應的腳本:
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06 SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16 SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06 SELECT CONVERT(varchar(100), GETDATE(), 4): 16.05.06 SELECT CONVERT(varchar(100), GETDATE(), 5): 16-05-06 SELECT CONVERT(varchar(100), GETDATE(), 6): 17 11 18 SELECT CONVERT(varchar(100), GETDATE(), 7): 11 17, 18 SELECT CONVERT(varchar(100), GETDATE(), 8): 11:05:44 SELECT CONVERT(varchar(100), GETDATE(), 9): 11 17 2018 11:05:37:873AM SELECT CONVERT(varchar(100), GETDATE(), 10): 11-17-18 SELECT CONVERT(varchar(100), GETDATE(), 11): 18/11/17 SELECT CONVERT(varchar(100), GETDATE(), 12): 181117 SELECT CONVERT(varchar(100), GETDATE(), 13): 17 11 2018 11:05:09:450 SELECT CONVERT(varchar(100), GETDATE(), 14): 11:05:00:750 SELECT CONVERT(varchar(100), GETDATE(), 20): 2018-11-17 11:04:53 SELECT CONVERT(varchar(100), GETDATE(), 21): 2018-11-17 11:04:46.373 SELECT CONVERT(varchar(100), GETDATE(), 22): 11/17/18 11:04:40 AM SELECT CONVERT(varchar(100), GETDATE(), 23): 2018-11-17 SELECT CONVERT(varchar(100), GETDATE(), 24): 11:04:22 SELECT CONVERT(varchar(100), GETDATE(), 25): 2018-11-17 11:04:14.437 SELECT CONVERT(varchar(100), GETDATE(), 100): 11 17 2018 11:04AM SELECT CONVERT(varchar(100), GETDATE(), 101): 11/17/2018 SELECT CONVERT(varchar(100), GETDATE(), 102): 2018.11.17 SELECT CONVERT(varchar(100), GETDATE(), 103): 17/11/2018 SELECT CONVERT(varchar(100), GETDATE(), 104): 17.11.2018 SELECT CONVERT(varchar(100), GETDATE(), 105): 17-11-2018 SELECT CONVERT(varchar(100), GETDATE(), 106): 17 11 2018 SELECT CONVERT(varchar(100), GETDATE(), 107): 11 17, 2018 SELECT CONVERT(varchar(100), GETDATE(), 108): 11:03:02 SELECT CONVERT(varchar(100), GETDATE(), 109): 11 17 2018 11:02:54:763AM SELECT CONVERT(varchar(100), GETDATE(), 110): 11-17-2018 SELECT CONVERT(varchar(100), GETDATE(), 111): 2018/11/17 SELECT CONVERT(varchar(100), GETDATE(), 112): 20181117 SELECT CONVERT(varchar(100), GETDATE(), 113): 17 11 2018 11:02:20:183 SELECT CONVERT(varchar(100), GETDATE(), 114): 11:02:11:590 SELECT CONVERT(varchar(100), GETDATE(), 120): 2018-11-17 11:02:02 SELECT CONVERT(varchar(100), GETDATE(), 121): 2018-11-17 11:01:55.340 SELECT CONVERT(varchar(100), GETDATE(), 126): 2018-11-17T11:01:45.967 SELECT CONVERT(varchar(100), GETDATE(), 130): 9 ???? ????? 1440 11:01:13:933AM SELECT CONVERT(varchar(100), GETDATE(), 131): 9/03/1440 11:01:34:153AM
有朋友會說,如果要返回xxxx年xx月xx日的格式怎麼做,其實也很簡單,比如下面的寫法:
select cast(year(getdate()) as varchar(4)) '年' cast(month(getdate()) as varchar(2)) '月' cast(day(getdate()) as varchar(2)) '日'
這裡借用了一些内置函數,轉換後組合一起。
希望對您有所幫助!
,