формат времени в SQL Server - PullRequest
       5

формат времени в SQL Server

11 голосов
/ 07 октября 2010

Кто-нибудь знает, как я могу отформатировать значение даты и времени оператора select для отображения только времени в SQL Server?

пример:

Table cuatomer
id   name   datetime
1    Alvin  2010-10-15 15:12:54:00
2    Ken    2010-10-08 09:23:56:00

Когда я выбираю таблицу, которая мне нравится, результатотобразить, как показано ниже

id   name    time
1    Alvin   3:12PM
2    Ken     9:23AM

Есть ли способ сделать это в mssql?

Ответы [ 6 ]

11 голосов
/ 07 октября 2010

Вы можете использовать комбинацию CONVERT, RIGHT и TRIM, чтобы получить желаемый результат:

SELECT ltrim(right(convert(varchar(25), getdate(), 100), 7))

100, который вы видите в функции, определяет формат даты mon dd yyyy hh:miAM (or PM), и оттуда мы просто берем правильные символы.

Подробнее о преобразовании даты и времени можно узнать здесь .

10 голосов
/ 07 октября 2010

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

SELECT CONVERT(varchar, your_datetime, 108)

Однако это 24-часовые часы, без AM / PM.

5 голосов
/ 07 октября 2010

Получит время из значения datetime, а также добавит am или pm к

.
SELECT RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),8)),7) 

всегда будет возвращать дату в формате ЧЧ: ммАМ .

Обратите внимание на отсутствие места

Или

SELECT REPLACE(REPLACE(RIGHT('0'+LTRIM(RIGHT(CONVERT(varchar,getDate(),100),7)),7),'AM',' AM'),'PM',' PM')

всегда будет возвращать дату в формате ЧЧ: мм AM .

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

PK

1 голос
/ 13 августа 2012

Попробуйте:

select convert(varchar, getdate(), 108)
+ ' ' + RIGHT(convert(varchar, getdate(), 100), 2) as Time
0 голосов
/ 22 сентября 2017

Если вы используете SQL Server 2008 или новее, вы можете использовать следующую инструкцию:

SELECT Convert( VarChar( 10 ), CAST([columnName] AS TIME(0)), 100 )
0 голосов
/ 07 октября 2010

Вы можете использовать:

select

convert(varchar,getdate(),114)

Вы можете вручную создать запрос, например:

string query = string.Format("INSERT INTO test (DateOnlyField, TimeOnlyField) VALUES ('{0}', '1899-12-30 {1}')", DateTime.Today.ToShortDateString(), TimeString)

Не знаю, может ли это работать на:

Create Table Schedule( ScheduleID Integer Identity, ScheduledTime DateTime )

Go

Insert Into Schedule( ScheduledTime ) Values( '10:15:00 AM' )

Go

Select ScheduledTime As DBScheduledTime, Convert( VarChar( 10 ), ScheduledTime, 114 ) As ScheduledTime

From Schedule

Go

Drop Table Schedule

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