输入为nvarchar,格式从m/d/yy
到mm/dd/yyyy
不等。如何在SQL中将其转换为mm/dd/yyyy
?到目前为止,CONVERT()
函数适用于m/d/yyyy
格式,但适用于m/d/yy
的错误。
答案 0 :(得分:1)
将其投射为如下日期:
cast(@m + '/' + @d + '/' + @y as datetime)
或类似地
cast('m/d/yy' as datetime)
cast(Fieldnamehere as datetime)
答案 1 :(得分:0)
update table_name set column_name = convert(varchar,cast(column_name as date),101)
或select语句select convert(varchar,cast(column_name as date),101)
答案 2 :(得分:0)
数据中通常会有一些额外的细微差别,但这里有一个我已经能够提出的入门模板......只需用convert(datetime2, [DateNVarChar], 101)
替换调试文本。
CASE
-- x/y/zzzz to xx/yy/zzzz
WHEN SUBSTRING([DateNVarChar], 2, 1) = '/' AND SUBSTRING([DateNVarChar], 4, 1) = '/' THEN
'x/y/zzzz: ' + '0' + SUBSTRING([DateNVarChar], 1, 2) + '0' + SUBSTRING([DateNVarChar], 3, 20)
-- xx/y/zzzz to xx/yy/zzzz
WHEN SUBSTRING([DateNVarChar], 3, 1) = '/' AND SUBSTRING([DateNVarChar], 5, 1) = '/' THEN
'xx/y/zzzz: ' + SUBSTRING([DateNVarChar], 1, 3) + '0' + SUBSTRING([DateNVarChar], 4, 20)
-- x/yy/zzzz to xx/yy/zzzz
WHEN SUBSTRING([DateNVarChar], 2, 1) = '/' AND SUBSTRING([DateNVarChar], 5, 1) = '/' THEN
'x/yy/zzzz: ' + '0' + [DateNVarChar]
ELSE
'Normal: ' + [DateNVarChar]
END as [FormattedDate]