Моя рекомендация будет:
Добавьте столбец типа 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
.
Вы можете отформатировать его в любое строковое представление, которое поддерживается в SQL Server, используя функцию CONVERT
Получив этот столбец 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