[英]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'。
YYYYMMDD格式可以按日期時間獲取為varchar格式。
select convert(varchar(8),convert(datetime, '13 dec 2018'),112)
上面的查詢提供了所需的結果
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.