Конвертировать строку на сегодняшний день в sql-сервере - программирование
Подтвердить что ты не робот

Конвертировать строку на сегодняшний день в sql-сервере

Как мне преобразовать YYYY-MM-DD (2012-08-17) в дату в SQL Server?

Я не вижу этот формат, указанный на странице справки: http://msdn.microsoft.com/en-us/library/ms187928.aspx

4b9b3361

Ответ 1

Я думаю, что стиль нет. 111 (Япония) должен работать:

SELECT CONVERT(DATETIME, '2012-08-17', 111)

И если это по какой-то причине не работает - вы всегда можете просто вычеркнуть тире, а затем у вас есть абсолютно надежный формат ISO-8601 (YYYYMMDD), который работает для любого языка и формат даты в SQL Server:

SELECT CAST(REPLACE('2012-08-17', '-', '') AS DATETIME)

Ответ 2

Это сделает трюк:

SELECT CONVERT(char(10), GetDate(),126)

Ответ 3

У меня была аналогичная ситуация. Здесь, что я смог сделать, чтобы получить диапазон дат в предложении "where" (модификация ответа marc_s):

where cast(replace(foo.TestDate, '-', '') as datetime) 
      between cast('20110901' as datetime) and
              cast('20510531' as datetime)

Надеюсь, что это поможет...

Ответ 4

если тип данных - это datetime таблицы .col, то данные хранилища базы данных содержат два частичных: 1 (дата) 2 (время)

Только в режиме отображения данных используйте преобразование или литье.

Пример:

create table #test(part varchar(10),lastTime datetime)
go

insert into #test (part ,lastTime )
values('A','2012-11-05 ')

insert into #test (part ,lastTime )
values('B','2012-11-05 10:30')


go

select * from #test 

A   2012-11-05 00:00:00.000
B   2012-11-05 10:30:00.000

select part,CONVERT (varchar,lastTime,111) from #test

A   2012/11/05
B   2012/11/05

select part,CONVERT (varchar(10),lastTime,20) from #test 

A   2012-11-05
B   2012-11-05