从VARCHAR转换为DATETIME

时间:2016-06-22 09:38:00

标签: sql sql-server sql-server-2014

我需要转换表中的所有值,并且我需要将此更改设为永久更改,因此表格具有日期,格式为dd.mm.yyy

我需要将它们更改为DATETIME格式yyyy-mm-dd

4 个答案:

答案 0 :(得分:0)

使用样式为CONVERT的{​​{1}}函数。

20

输出:

SELECT CONVERT(VARCHAR,yourdatefield,20)

答案 1 :(得分:0)

SELECT CONVERT(NVARCHAR(10),CONVERT(DATETIME,yourData,104),20)

答案 2 :(得分:0)

如果格式为“dd.mm.yyyy”。  按照步骤进行操作。

  1. 添加新列

        UPDATE TABLE_NAME SET COLUMN_NAME=CONVERT(DATETIME,V_DATE_COL,104);
    
  2. 使用旧列

    中的日期值更新列
        ALTER TABLE TABLE_NAME DROP COLUMN V_DATE_COL
    
  3. 删除旧列

        EXEC sp_RENAME 'TABLE_NAME.COLUMN_NAME' , 'NewColumnName', 'COLUMN'
    
  4. 重命名新列

    =ArrayFormula(trim(transpose(split(query(rept(A2:A&char(10),B2:B),,50000), char(10)))))
    

答案 3 :(得分:0)

如果您的日期与适当的数据类型(日期,日期时间或日期时间2)一起存储,那么它们是stored without any display format.

如果是这种情况,您需要在选择数据时将其转换为char(10)

SELECT CONVERT(char(10), DateTimeColumn, 120)

如果它们存储为字符串类型,则应重构数据库并正确存储它们。如果由于某种原因这是不可能的,你可以转换两次。一个从字符串到日期,另一个返回字符串:

SELECT CONVERT(char(10), CONVERT(date, DateTimeStringColumn, 104), 120)