select *
from Advertisements
where DepartureDate < DATEPART('dd.mm.yy', '09.10.2010');
,但我得到DATEPART不喜歡的工作我想那一定
消息1023,15級,狀態1,行 無效參數1指定日期部分。
在plsql中這是非常簡單的,這裏是如此複雜... 有人可以告訴我,我怎麼能得到比今天小的所有日期。
select *
from Advertisements
where DepartureDate < DATEPART('dd.mm.yy', '09.10.2010');
,但我得到DATEPART不喜歡的工作我想那一定
消息1023,15級,狀態1,行 無效參數1指定日期部分。
在plsql中這是非常簡單的,這裏是如此複雜... 有人可以告訴我,我怎麼能得到比今天小的所有日期。
您可以使用它來獲取當前日期:
CONVERT(date, GETDATE())
有人可以告訴我,我怎麼能得到比今天小的所有日期。
SELECT *
FROM Advertisements
WHERE DepartureDate < CONVERT(date, GETDATE())
對於任何新的SQL SERV呃2008年,這可能看起來有點混亂。可能值得指出的是,GETDATE()返回一個DATETIME數據類型。將它轉換爲DATE會截斷時間部分。 – 2010-10-11 07:55:56
您似乎很困惑DATEPART
與FORMAT_DATE
(反正它不存在)。
DATEPART
提取日期的某個部分。完全是一部分。
比今天小的日期是< dbo.CropTime(getdate())
,其中CropTime是可以用不同方式書寫的函數(如this question中描述的那些函數)。或者,如果您使用的是SQL Server 2008,它就像< cast(getdate() as date)
一樣簡單。
請問這代碼真的在PL/SQL工作? T-SQL函數中的DATEPART用於提取日期的各個部分。
這會讓你知道現在的所有日期。
select * from Advertisements where DepartureDate < getdate()
如果你打算硬編碼的日期(如您的示例代碼提示),你只需要的方式,SQL Server將理解格式化。例如。
select * from Advertisements where DepartureDate < '2010-10-09'
我已經告訴日期格式的作品在每個服務器上,無論其本地化設置。這當然適用於我試過的每臺服務器上 - 但我很樂意被否決:-)
DatePart用於獲取日期的組件,例如月份,年份或日期。要得到比現在更小(更老)的日期,我會這樣做。
select * from Advertisements where DepartureDate < GetDate();
如果我想要的是昨天或之前的出發日期,我可以做到這一點。
select * from Advertisements where DepartureDate < Convert(DateTime,Convert(Char(10),GetDate(),121));
或
select * from Advertisements where DepartureDate < Convert(DateTime,floor(convert(int,GetDate())))
你在找什麼,我認爲是
select *
from Advertisements
where DepartureDate < Convert(Date, '09.10.2010', 102)
或可能
SELECT *
FROM Advertisements
WHERE DepartureDate < Cast(CURRENT_TIMESTAMP as date)
嘿,我有沒有很多地方工作,因爲我認爲他們必須;) – slashmais 2010-10-09 18:46:27