Как преобразовать значение даты и времени в другой формат только для даты? - PullRequest
1 голос
/ 15 декабря 2011

мое поле даты и времени выглядит следующим образом:

 2011-02-07 06:51:32.000 (yyyy-mm-dd)

Пользовательский ввод имеет следующий формат:

 02-07-2011 (only the date)

Это должно быть преобразовано в:

 02-07-2011 00:00:00.000

Я попытался CONVERT:

 CONVERT(VARCHAR(10),myDateTimeField,113)

, но это работает только со значениями даты, а не с datetime.

, пожалуйста, помогите!

Я использовал следующую функцию:

CONVERT(datetime,Cast(myDateInput AS Char (10)), 105)

спасибо за все ваши ответы!и я прошу прощения за изменение моего вопроса!

Ответы [ 5 ]

2 голосов
/ 15 декабря 2011

выберите конвертирование (varchar, myDateTimeField, 105) ...

Источник: http://www.mssqltips.com/sqlservertip/1145/date-and-time-conversions-using-sql-server/ и http://msdn.microsoft.com/en-us/library/aa226054(v=sql.80).aspx

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

попробуйте конвертировать с ID стиля - 110

CONVERT(VARCHAR(10),myDateTimeField,110)

Результат будет: 02-07-2011

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

Не думаю, что это удивительно, что поле DATETIME содержит информацию о времени;)

На самом деле вам не следует изменять само поле, так как вы потеряете способность ядра базы данных использовать функции, связанные с датой / временем, с этим полем. (используется формат ISO 8601, который помогает двигателю легко идентифицировать отдельные детали)

Как уже говорили другие, рекомендуется отформатировать дату, когда вы ее извлекаете, либо в своем заявлении SELECT, либо в вашем приложении. (для получения дополнительных советов по этому вопросу нам действительно потребуется информация о том, какой сервер sql и какой язык приложений вы используете).

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

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

select DATEPART(mm, myDateTimeField) + '-' +
       DATEPART(dd, myDateTimeField) + '-' +
       DATEPART(year, myDateTimeField)
0 голосов
/ 15 декабря 2011

Crystal имеет функцию с именем Date; он принимает в качестве аргументов YYYY, MM, DD или datetime и возвращает дату.

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

date( mytable.mydatetimevar )

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

Альтернативный способ сделать это - использовать функцию DatePart в Crystal, чтобы извлечь месяц, год, день и затем реструктурировать, как требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...