Как я могу преобразовать формат даты и времени ниже
2010-10-25 11:13:36.700
в
25 октября 2010 г. или 25 октября 2010 г. 00:00:00.000
Как я могу преобразовать формат даты и времени ниже
2010-10-25 11:13:36.700
в
25 октября 2010 г. или 25 октября 2010 г. 00:00:00.000
Предполагая, что значение предоставляется в виде строки, а не типа данных DATETIME:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
См. документацию CAST/CONVERT для других форматов, хотя тот, который вы запросили требует постобработки.
Лучше всего использовать DATEADD и DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
Использованная литература:
WITH sample AS (
SELECT CAST('2010-10-25 11:13:36.700' AS DATETIME) dt)
SELECT REPLACE(CONVERT(VARCHAR, s.dt, 106), ' ', '-') AS col1,
DATEADD(d, DATEDIFF(dd, 0, s.dt), 0) AS col2
FROM sample s
Возвращает:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
Поскольку вы используете SQL Server 2005, вы можете упростить форматирование даты, создав функцию SQLCLR, которая позволит вам использовать форматирование даты .NET.
проверить это
SELECT convert(VARCHAR, getdate(),106)
это даст вам 25 Oct 2010
А ТАКЖЕ
SELECT REPLACE(convert(VARCHAR, getdate(),106), ' ' , '-')
это даст вам 25-Oct-2010
Проверьте, может ли это вам помочь:
SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-')
Дополнительную информацию можно получить здесь
ПД. Stackoverflow иногда может быть слишком зависимым, вы можете попробовать Google, прежде чем
выберите КОНВЕРТ (NVARCHAR (20), getDATE (), 105)
Пожалуйста попробуйте
SELECT CONVERT(varchar, GETDATE(), 1) --12/30/06
SELECT CONVERT(varchar, GETDATE(), 2) --06.12.30
SELECT CONVERT(varchar, GETDATE(), 3) --30/12/06
SELECT CONVERT(varchar, GETDATE(), 4) --30.12.06
SELECT CONVERT(varchar, GETDATE(), 5) --30-12-06
SELECT CONVERT(varchar, GETDATE(), 6) --30 Dec 06
SELECT CONVERT(varchar, GETDATE(), 7) --Dec 30, 06
SELECT CONVERT(varchar, GETDATE(), 10) --12-30-06
SELECT CONVERT(varchar, GETDATE(), 11) --06/12/30
SELECT CONVERT(varchar, GETDATE(), 12) --061230
SELECT CONVERT(varchar, GETDATE(), 23) --2006-12-30
SELECT CONVERT(varchar, GETDATE(), 101) --12/30/2006
SELECT CONVERT(varchar, GETDATE(), 102) --2006.12.30
SELECT CONVERT(varchar, GETDATE(), 103) --30/12/2006
SELECT CONVERT(varchar, GETDATE(), 104) --30.12.2006
SELECT CONVERT(varchar, GETDATE(), 105) --30-12-2006
SELECT CONVERT(varchar, GETDATE(), 106) --30 Dec 2006
SELECT CONVERT(varchar, GETDATE(), 107) --Dec 30, 2006
SELECT CONVERT(varchar, GETDATE(), 110) --12-30-2006
SELECT CONVERT(varchar, GETDATE(), 111) --2006/12/30
SELECT CONVERT(varchar, GETDATE(), 112) --20061230