Как изменить формат даты - PullRequest
       11

Как изменить формат даты

0 голосов
/ 26 декабря 2011

Таблица:

Dates (nvarchar)
==
23/02/2009 (dd/mm/yyyy)
24/02/2009
25/08/2009
28/12/2011
....

Я хочу изменить форму даты следующим образом (ггггммдд)

Пробный запрос

select cast(dates as datetime) from table1

Отображение ошибки

Ю Арифметическое выражение переполнено

select Convert(char(10), dates, 112) from table1

Отображение того же значения 23/02/2009

Приведенный выше запрос не работает.

Ожидаемый результат

20090232
20090224
20090825
20111228
...

Как сделать запрос?

Ответы [ 4 ]

4 голосов
/ 26 декабря 2011

Используйте эту статью.

select CONVERT(varchar(8),CONVERT(datetime, '23/02/2009',103),112)
1 голос
/ 26 декабря 2011
select convert(varchar, getdate(), 102)[Dates] from tablename

Посмотрите по этой ссылке: http://www.technoreader.com/SQL-Server-Date-Time-Format.aspx

1 голос
/ 26 декабря 2011

Попробуйте этот простой запрос:

SELECT DATEPART(yyyy,dates)+DATEPART(m,dates)+DATEPART(d,dates) FROM table1

Вы можете получить больше информации по этой ссылке: SQL-сервер дата

1 голос
/ 26 декабря 2011

Поскольку они хранятся в виде строковых данных, вы можете просто использовать строковые функции, чтобы получить то, что вы хотите.

Первый, чтобы дать вам действительную дату

select 
    cast(SUBSTRING(dates,4,2) + '/' + left(dates,2) + '/' + right(dates,4) as datetime) NowItsADateTime
from DateTable

И второе, что вы просили.

select right(dates,4) + SUBSTRING(dates,4,2) + left(dates,2) as YYYYMMDD
from DateTable
...