我在数据库列中有日期,但日期格式不同。有些是mm-dd-yyyy
,有些是mm.dd.yy
或其他。如何使用查询将其格式化为相同类型?
我正在使用SQL Server 2008。
答案 0 :(得分:1)
我的建议是:
在表格中添加DATE
类型的列:
ALTER TABLE dbo.YourTable ADD NewDateColumn DATE
更新您的表格,将这些varchar
值转换为DATE
:
UPDATE dbo.YourTable
SET NewDateColumn = CAST(YourOldColumn AS DATE)
WHERE NewDateColumn IS NULL AND ISDATE(YourOldColumn) = 1
删除旧栏目:
ALTER TABLE dbo.YourTable DROP COLUMN YourOldColumn
从现在开始 - 仅使用新的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