簡體   English   中英

在T-SQL中將日期時間轉換為nvarchar(8)

[英]Conversion of datetime to nvarchar(8) in T-SQL

我正在嘗試將datetime列轉換為yyyymmdd ISO格式。 例如,我希望能夠將'13 dec 2018'轉換為'20181213'。

根據Microsoft的T-SQL文檔 ,我應該能夠使用

convert(nvarchar(8), '13 dec 2018', 112)

但是,這不起作用-我得到的結果是'13 dec 2',它看起來只不過是原始字符串,該字符串減少到8個字符。

我也嘗試使用

convert(datetime, '13 dec 2018', 112)

這給了我'Dec 13 2018 12:00 AM'的結果-同樣,沒有什么應該產生的功能。

我做錯了什么? 我可以使用datepart()和連接的字符串輕松地解決問題,但如果可能的話,我寧願使用更優雅的方法。

合並它們:

convert(nvarchar(8), convert(datetime, '13 dec 2018'), 112)

我不建議您為第一次轉換使用格式112 ,因為它會引起誤解。 SQL Server非常擅長進行無格式轉換。 如果確實使用一種,則合適的是106

我知道了-因為我是將日期作為字符串輸入,而不是先不將其轉換為datetime值,所以它會將我的日期視為字符串。 當我這樣處理時:

convert(nvarchar(8), cast('13 dec 2018' as datetime), 112)

我得到了預期的結果'20181213'。

選擇convert(nvarchar(8),cast(GETDATE()作為datetime),112)作為TodayDate

在此處輸入圖片說明

YYYYMMDD格式可以按日期時間獲取為varchar格式。

select convert(varchar(8),convert(datetime, '13 dec 2018'),112)

上面的查詢提供了所需的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM