Как заставить SQL Server сохранять дату и время в формате AM / PM? - PullRequest
1 голос
/ 24 января 2012

Я пытаюсь заставить мою таблицу SQL Server datetime столбцы сохранить datetime с AM / PM.Как заставить SQL Server сохранять datetime в формате AM / PM?

Прямо сейчас он сохраняет дату следующим образом: 2012-01-23 14:47:00.000 Можно ли ее сохранить 2012-01-23 02:47:00.000 PM ??

Или SQL Server все время сохраняет дату и время в этом формате (2012-01-23 14:47:00.000), и мне нужно преобразовать их только при выводе и вводе?

Можно ли даже сохранить их в этом формате (2012-01-23 02:47:00.000 PM)?Или SQL Server сохраняет datetime в 24-часовом формате?

спасибо за любую помощь.извините за язык.;)

Ответы [ 5 ]

9 голосов
/ 24 января 2012

Внутренне дата и время хранятся в виде числа.

Независимо от того, отображается ли он через 12 или 24 часа, программа отформатирует его для отображения.

5 голосов
/ 24 января 2012

Как сказал Эндрю, формат даты и времени хранится не в виде строки. Таким образом, вы можете использовать функцию CONVERT, чтобы получить значение datetime в подходящем формате. например,

SELECT CONVERT(VARCHAR(20), GETDATE(), 100)

чтобы узнать больше о форматировании даты и времени, см. эту статью

3 голосов
/ 24 января 2012

Вы можете просто использовать функцию CONVERT следующим образом:

выберите CONVERT (VARCHAR, GETDATE (), 108)

http://www.fmsinc.com/free/NewTips/SQL/AM_PM_time_format_in_SQL.asp

http://msdn.microsoft.com/en-us/library/Aa226054

http://blogs.msdn.com/b/kathykam/archive/2006/09/29/773041.aspx

3 голосов
/ 24 января 2012

AM / PM служит только для визуализации, если вам нужно отобразить их, используйте ключевое слово CONVERT:

SELECT CONVERT(varchar, YourDateTimeField, 109)
FROM YourTable

Если вам нужно сохранить AM / PM - это не имеет смысла для типа datetime, используйте varchar тип вместо.

0 голосов
/ 05 июня 2018

В зависимости от точности сохраняемой даты и времени вы можете очистить ее с помощью

REPLACE (CONVERT (varchar, YourDateTimeField, 109), ': 00.0000000', '')

Это не будет работать, если ваше поле даты заполнено GETDATE (), поскольку это означает, что оно будет содержать секунды и миллисекунды, но это будет работать, если поле заполняется пользователем, а секунды и миллисекунды - все нули

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