0
我有日期在数据库的列,但日期格式不相同。有的是mm-dd-yyyy
,有的是mm.dd.yy
或其他。如何使用查询将其格式化为相同类型?更新日期列和格式日期到相同模式
我使用SQL Server 2008的
我有日期在数据库的列,但日期格式不相同。有的是mm-dd-yyyy
,有的是mm.dd.yy
或其他。如何使用查询将其格式化为相同类型?更新日期列和格式日期到相同模式
我使用SQL Server 2008的
我的建议是:
添加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
什么** datatype **是该列?日期不在SQL Server中存储为字符串 - 因此它们没有与它们关联的任何**格式** - 也就是说,如果使用适当的数据类型(DATE或DATETIME),则为IF IF – 2011-12-29 08:13:41
+1 @marc_s - 格式与存储无关。 – Oded 2011-12-29 08:17:27
列是varchar,但我有它的日期 – kinkajou 2011-12-29 08:54:50