Преобразование даты / времени в sql в строку

#tsql #datetime #varchar

#tsql #дата и время #varchar

Вопрос:

Есть ли какой-либо способ, которым я могу преобразовать значение DateTime SQL этого:

 2011-10-11 00:00:00.000
  

в строку, отформатированную точно так же?

 '2011-10-11 00:00:00.000'
  

Я пытался сделать cast(fl_from_dt as varchar(50) , но он преобразует его во что-то читаемое — например. 'Oct 11 2011 12:00AM'

Ответ №1:

Используете ли вы SQLServer?

Взгляните на style параметр CONVERT() здесь: http://msdn.microsoft.com/en-us/library/ms187928.aspx — в частности, взгляните на канонический формат ODBC (с миллисекундами).

Для краткости вы должны использовать style 121 в CONVERT() команде.

Стиль: 121

Канонический ODBC (с миллисекундами) по умолчанию для time, date, datetime2 и datetimeoffset

гггг-мм-дд чч: mi: ss.mmm(24 часа)

Комментарии:

1. Спасибо! Даже не знал об этом.

Ответ №2:

Попробуйте это!

 select  CONVERT(VARCHAR(10), GETDATE(), 112) 
  right('0' cast(datepart(hh, GETDATE()) as varchar(2)),2)
  right('0' cast(datepart(mi, GETDATE()) as varchar(2)),2)
  right('0' cast(datepart(ss, GETDATE()) as varchar(2)),2) as 'DateTime_STR2'