我正在尝试从当前年度的当月1日到当前日期。 那么,这个脚本有什么问题?和正确的?
select DATEDIFF(day,CONVERT(varchar,1+'/'+ MONTH(GETDATE())+'/' + YEAR(GETDATE()),102),GETDATE());
答案 0 :(得分:2)
该月份的第1天的天数是否始终等于DAY(YourDate)
或可能DAY(YourDate) - 1
???
3月22日,这个数字是...... 22(或21 - 取决于你如何计算) - 没有?
那怎么样:
SELECT
DaysFromFirstOfMonth = DAY(GETDATE()) - 1
这就是你要找的东西吗?
答案 1 :(得分:1)
我建议您使用DAY
(如评论中的@marc_s所述)或DATEPART
来返回一个整数,该整数表示该日期的“每月日期”部分你正在与之合作。
E.g:
SELECT DAY(GETDATE()),DATEPART(day,GETDATE())
Will(今天,2012年4月8日)回归:
8,8
然后,您可以从那里执行任何必要的调整。
答案 2 :(得分:0)
你的风格价值似乎是错误的。 102是ansi-dates(yy.mm.dd) - 如果你想使用英国/法国日期(年/月/日),你必须使用值103:
select DATEDIFF(day,CONVERT(varchar,1+'/'+ MONTH(GETDATE())+'/' + YEAR(GETDATE()),103),GETDATE());