簡體   English   中英

T-SQL 字符串到日期時間的轉換

[英]T-SQL String to DateTime-conversion

我需要將以下格式的字符串值轉換為 DateTime:

2042-04
2011-01

是否有捷徑可尋? 我試過CAST AND CONVERT沒有太多運氣。

謝謝!

嘗試將“-01”附加到它的末尾,然后進行強制轉換或轉換

declare @S varchar(7)
set @S = '2042-04'

select cast(stuff(@S, 5, 1, '')+'01' as datetime)

YYYYMMDD 是一種安全格式,與SET DATEFORMAT無關。 YYYY-MM-DD 不是。 http://www.sommarskog.se/wishlist.html#YYYYMMDD

SELECT CAST('2011-01-01' AS DATETIME)
SELECT CONVERT(DATE , '2011-01-01')

看來您需要在字符串中添加“一天”。

Declare @Table Table
(
    ColDateTime Varchar(100)
)
Insert into @Table
Select '2042-04' UNION ALL
Select '2011-01'

Select ColDateTime As VarcharCol,
Cast(
    substring(ColDateTime,0,charindex('-',ColDateTime))+substring(ColDateTime,charindex('-',ColDateTime)+1,len(ColDateTime))+'01'
As DateTime) As DateTimeCol
from @Table

暫無
暫無

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

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