2014-04-22 5 views
1

Im пытается получить дату части столбца даты, чтобы сравнить две даты, но не смог получить дату непосредственно, я пробовал это Convert(date, getdate()), но это не работает с SQL Server 2005, поскольку мы используя это, и когда я попытался DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE())) это дает 2008-09-22 00:00:00.000 где я хочу даты только часть без времени, т.е. 00, взяты как из сообщений: How to return the date part only from a SQL Server datetime datatypeselect date part only in sql server

что IHV сделано это convert(VARCHAR(10),'2014-04-21 00:00:00.000') и возвращает 2014-04-21, но теперь в varchar ,

Есть ли какой-нибудь способ, чтобы я мог получить часть даты только типа даты в SQL Server 2005.

Спасибо заранее.

+0

см. Мой обновленный ответ. – Jade

+0

Это очень просто, попробуйте использовать Cast вместо конвертировать, проверьте мои ан. – AK47

ответ

1

Есть ли какой-нибудь способ, чтобы я мог получить часть даты только в типе дат в SQL SERVER 2005.

Нет, date тип данных был добавлен в SQL Server 2008 можно лучше do - использовать дату-время с временной частью 00:00:00.

1

Попробуйте, это для SQL 2008

select Cast(getdate() as Date) as onlyDate 
0

Обычный трюк, чтобы удалить время из DateTime должен бросить плавать и принимать ИНТ часть и брось его обратно в DateTime:

declare @d datetime; 
set @d = getdate(); 
select cast(floor(cast(@d as float)) as datetime);