0

输入是 nvarchar,格式从m/d/yy到不等mm/dd/yyyy。如何mm/dd/yyyy在 SQL 中将其转换为?到目前为止,该CONVERT()函数适用于格式m/d/yyyy,但错误适用于m/d/yy.

4

3 回答 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 回答