Преобразование формата даты и времени в 12 часов - PullRequest
6 голосов
/ 07 февраля 2012

У меня есть этот запрос

select CONVERT(varchar(5), tdate ,108) AS [Time] from table 

, что дает мне время в 24-часовом формате (военный)

Я хотел преобразовать его в 12-часовой формат, поэтому я попробовал запрос ниже

 select SUBSTRING(CONVERT(VARCHAR, tdate, 100),13,2) + ':' 
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),16,2) + ''
+ SUBSTRING(CONVERT(VARCHAR, tdate, 100),18,2) AS T  
from table

и я получаю 12-часовой формат, но мне просто интересно, есть ли более короткий или лучший способ сделать это. любая помощь?

Ответы [ 5 ]

7 голосов
/ 07 февраля 2012

Если вы хотите преобразовать текущую дату и время, например:

SELECT CONVERT(VARCHAR, getdate(), 100) AS DateTime_In_12h_Format

Вместо getdate (), вы можете поместить желаемый столбец в запрос (например, tdate в вашем примере).Если вы хотите ТОЛЬКО время в 12 часов, а не дату и время, используйте подстроку / право для их разделения.Кажется, вы уже знаете, как это сделать =).

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

6 голосов
/ 07 февраля 2012

Это вернет только время, а не дату.

SELECT RIGHT(CONVERT(VARCHAR, getdate(), 100), 7) AS time

Для ваших табличных данных:

select RIGHT(CONVERT(varchar, tdate ,100), 7) AS [Time] from table 
0 голосов
/ 12 января 2019
ifnull(date_format(at.date_time,'%d/%m/%Y'),"") AS date_time,
ifnull(time_format(at.date_time ,'%h:%i:%s'),"") AS date_time

Вот так выглядит процедура SQL ... (для разделения даты и времени) .. нет необходимости в специальном столбце для времени / даты ....

Примечание: если H вместо h, будет отображаться формат "час в 24 часах"

0 голосов
/ 06 сентября 2018

Получить дату сервера

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7))

или

Если она хранится в таблице

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), datename, 100), 7))

Результат:

11:41 утра

1013 *
0 голосов
/ 14 декабря 2016

Ниже код вернется только время, как 22:30

SELECT FORMAT(CAST(getdate() AS DATETIME),'hh:mm tt') AS [Time]  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...