Как получить время из формата DateTime в SQL?

Я хочу получить только время от столбца DateTime, используя SQL-запрос с использованием SQL Server 2005 и 2008 Выход по умолчанию:

AttDate                   
==
2011-02-09 13:09:00    
2011-02-09 14:10:00    

Мне нужен этот вывод:

AttDate                Time 
==
2011-02-09 13:09:00    13:09
2011-02-09 14:10:00    14:10

Ответ 1

SQL Server 2008:

select cast(AttDate as time) [time]
from yourtable

Более ранние версии:

select convert(char(5), AttDate, 108) [time]
from yourtable

Ответ 2

Предполагая сервер Sql

SELECT CONVERT(VARCHAR(8),GETDATE(),108)

Ответ 3

SQL Server 2008+ имеет тип данных времени

SELECT 
    ..., CAST(MyDateTimeCol AS time)
FROM
   ...

Для более старых версий без преобразования varchar

SELECT 
    ..., DATEADD(dd, DATEDIFF(dd, MyDateTimeCol, 0), MyDateTimeCol)
FROM
   ...

Ответ 4

Самый простой способ получить время от даты и времени без миллисекундного стека:

SELECT convert(time(0),getDate())

Ответ 5

Попробуйте использовать

  • Дата до времени

    select cast(getdate() as time(0))
    
  • Время до TinyTime

    select cast(orig_time as time(0))
    

Ответ 6

Попробуйте следующее:

select  convert(nvarchar,CAST(getdate()as time),100)

Ответ 7

Попробуйте, это сработает:

CONVERT(VARCHAR(8),DATETIME,114)

Для ссылка.

Ответ 8

select AttDate,convert(char(5), AttDate, 108) [Time] from yourTableName

Ответ 9

Я часто использую этот script для получения Time from DateTime:

SELECT CONVERT(VARCHAR(9),RIGHT(YOURCOLUMN_DATETIME,9),108) FROM YOURTABLE

Ответ 10

Если вы хотите, чтобы что-то было в этом стиле: 23 октября 2013 10:30

Используйте этот

SELECT CONVERT(NVARCHAR(30),getdate(), 100)

convert() принимает 3 параметра

  • тип данных
  • Column/Value
  • Стиль: доступные стили от 100 до 114. Вы можете выбирать в пределах диапазона. Выберите один за другим, чтобы изменить формат даты.

Ответ 11

Чтобы получить время из datetime, мы можем использовать

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

Ответ 12

select cast (as time(0))

будет хорошей оговоркой. Например:

(select cast(start_date as time(0))) AS 'START TIME'

Ответ 13

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

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), GETDATE(), 100), 7)) FROM TABLENAME WHERE ...

или

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

SELECT LTRIM(RIGHT(CONVERT(VARCHAR(20), datename, 100), 7)) FROM TABLENAME WHERE ...

Результат:

11:41AM

Ответ 14

select convert(char(5), tbl_CustomerBooking.CheckInTime, 108) AS [time]
from tbl_CustomerBooking

Ответ 15

select substr(to_char(colUmn_name, 'DD/MM/RRRR HH:MM:SS'),11,19) from table_name;

Выход: от

05:11:26
05:11:24
05:11:24