2015-01-16 4 views
3

я скажуКак получить час и минуту только с DateTime

'2015-01-16 13: 50: 00,000'

в моей базе данных.

Как получить только часы и минуты?

13:50

в конце концов, я хочу, чтобы сделать запрос, как этот

Обновление устанавливается статус = 1 WHERE = Конечное = CURRENT_TIME()

* endTime = имя поля моего примера выше.

ответ

8
SELECT DATEPART(HOUR, GETDATE()); 
SELECT DATEPART(MINUTE, GETDATE()); 

MSDN: DATEPART

Я хочу, чтобы получить 13:50. это путь

SELECT CAST(DATEPART(HOUR, GETDATE())AS VARCHAR(2)) + ':' + 
     CAST(DATEPART(MINUTE, GETDATE())AS VARCHAR(2)) 

Я на SQL-Server 2005, который не имеет TIME datatype, но это should also work для вас:

SELECT LEFT(DATEADD(MINUTE, 10, (CONVERT(TIME(0),GETDATE()))),5) 

Если вы хотите, чтобы фильтровать записи по часам + минут часть:

WHERE DATEPART(HOUR, endTime)= DATEPART(HOUR, GETDATE()) 
AND DATEPART(MINUTE, endTime)= DATEPART(HOUR, GETDATE()) 
+0

Я хочу, чтобы получить 13:50. это путь? – azalikaEriya

+0

В конец Я хочу сравнить существующее время и время в базе данных. это все еще работает для моего дела? – azalikaEriya

+0

@azalikaEriya: Я добавил другой способ, который работает только> SQL-Server 2005 –

0

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

SQL Server 2000/2005

SELECT 
    CONVERT(VARCHAR(8), GETDATE(), 108) AS HourMinuteSecond, 
    CONVERT(VARCHAR(10), GETDATE(), 101) AS DateOnly; 
GO 

SQL Server 2008 Onwards

SELECT 
    CONVERT(TIME, GETDATE()) AS HourMinuteSeconds; 
SELECT 
    CONVERT(DATE, GETDATE()) AS DateOnly; 
GO 

вы можете узнать об этом больше here

+0

Я отредактировал мой вопрос. это все еще на моем деле? – azalikaEriya