将日期列和格式日期更新为相同模式

时间:2011-12-29 08:09:59

标签: database sql-server-2008

我在数据库列中有日期,但日期格式不同。有些是mm-dd-yyyy,有些是mm.dd.yy或其他。如何使用查询将其格式化为相同类型?

我正在使用SQL Server 2008。

1 个答案:

答案 0 :(得分:1)

我的建议是:

  1. 在表格中添加DATE类型的列:

    ALTER TABLE dbo.YourTable ADD NewDateColumn DATE
    
  2. 更新您的表格,将这些varchar值转换为DATE

    UPDATE dbo.YourTable
    SET NewDateColumn = CAST(YourOldColumn AS DATE)
    WHERE NewDateColumn IS NULL AND ISDATE(YourOldColumn) = 1
    
  3. 删除旧栏目:

    ALTER TABLE dbo.YourTable DROP COLUMN YourOldColumn
    
  4. 从现在开始 - 仅使用新的DATE列。

    您可以将其格式化为supported in SQL Server using the CONVERT function

    的任何字符串表示形式

    获得DATE列之后,您可以使用所需的任何字符串格式输出它:

    SELECT
       CONVERT(VARCHAR(20), GETDATE(), 101) 'US format', 
       CONVERT(VARCHAR(20), GETDATE(), 102) 'ANSI format', 
       CONVERT(VARCHAR(20), GETDATE(), 104) 'German format'
    

    给你:

    US format   ANSI format German format
    12/29/2011  2011.12.29  29.12.2011