输入是 nvarchar,格式从m/d/yy
到不等mm/dd/yyyy
。如何mm/dd/yyyy
在 SQL 中将其转换为?到目前为止,该CONVERT()
函数适用于格式m/d/yyyy
,但错误适用于m/d/yy
.
问问题
7927 次
3 回答
1
将其转换为这样的日期:
cast(@m + '/' + @d + '/' + @y as datetime)
或类似的
cast('m/d/yy' as datetime)
cast(Fieldnamehere as datetime)
于 2013-06-28T17:35:26.627 回答
0
update table_name set column_name = convert(varchar,cast(column_name as date),101)
或者如果选择语句select convert(varchar,cast(column_name as date),101)
于 2013-06-28T18:25:17.147 回答
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]
于 2017-05-26T05:47:27.890 回答