[英]SQL DateDiff - return row when one date field is 2 months older than another date field
[英]SQL: DATEDIFF If Start Date is greater than a date in another field
我正在尋找算出我聲明為變量的2個日期之間的差異,
DECLARE @start_date DATETIME
SET @start_date= '20000728'
DECLARE @end_date DATETIME
SET @end_date= '20161028'
但僅當@start_date大於DATE_CREATED時。 如果不是,我想做DATE_CREATED和@end_date之間的區別
我該怎么做呢?
我目前所擁有的是:
DATEDIFF(DAY, @start_date, @end_date) AS 'DAYS_AVAIL_RANGE'
我不確定如何合並IF語句來做到這一點,
感謝您的幫助,干杯!
嘗試這個。 這肯定會解決您的問題,因為此處將執行日期/時間值的轉換。
select
case when DATEDIFF(day,convert(date,DATE_CREATED),CONVERT(date,@start_date)) > 0
then datediff(DAY, convert(date,@start_date), convert(date,@end_date))
else
datediff(DAY, convert(date,DATE_CREATED), convert(date,@end_date))
end
您想要的case
:
select (case when @start_date > date_created
then datediff(DAY, @start_date, @end_date)
else datediff(DAY, date_created, @end_date)
end) as days_avail_range
嘗試這個
select datediff(DAY, (select max(v) from (VALUES (@start_date), (DATE_CREATED)) as value(v)) , @end_date) from yourtable
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.