[VB.NET]datediff関数 SQLServerと違う

[VB.NET]datediff関数 SQLServerと違う

値が異なることがある

日付差を取得する際に、時刻も含められている値を利用している際に要注意

例題)
VB.NET
datediff(DateInterval.Day,#6/8/2008 23:59#,#6/9/2008 1:00#)
→ 0 (24時間以上の差がないから 0日という解釈のよう)

SQLServer
select datediff(Day,’6/8/2008 23:59′,’6/9/2008 1:00′)
→ 1 (日付だけ考慮して1日違うということのよう)

用途に応じて、VB.NETなら
datediff(DateInterval.Day,cdate(#6/8/2008 23:59#).Date,#6/9/2008 1:00#)
として、日付のみに変換するなどが必要

解決しましたら、いいね か ツイート をお願いします

コメントする