我找不到以下 SQL 命令的含义:
其中 to_date('2013-03-01', 'yyyy-mm-dd') 和 trunc(sysdate, 'mm') -1之间的日期
“ -1 ”是什么意思/是什么?
另一个例子是
截断(months_between(日期1,日期2))+1
我已经搜索过这个,但找不到任何东西。
谢谢你的建议!
+1
是在日期中添加一天的方法
-1
是删除日期的方法
在您的具体情况下:
指令trunc(sysdate, 'mm') -1
删除一个月到日期,在这种情况下是当前日期前一个月。
该指令trunc(months_between(date1, date2))+1
计算两个日期之间的月份差,然后加一。
看看这个SQLFiddle
正如其他人回答的那样,“日期 - 1”从日期中减去一天。以下是有关您的特定 SQL 片段的更多详细信息:
where date between to_date('2013-03-01', 'yyyy-mm-dd') and trunc(sysdate, 'mm') -1`
这将评估为“2013 年 3 月 1 日至上月底之间的日期”
TRUNC(
某个日期,'MM')
将日期截到月初TRUNC(SYSDATE, 'MM')
返回当月的月初TRUNC(SYSDATE, 'MM')-1
返回上个月的最后一天trunc(months_between(date1, date2))+1
这是给出 和 之间的完整月数date1
,date2
将一个月的任何部分视为一个完整月。例如,如果你给它日期7/28/2013
,7/29/2013
它会报告一个月,如果你给它,它也会报告一个月,7/1/2013
并且7/31/2013
。
正如它所暗示的那样,该MONTHS_BETWEEN
函数返回两个日期之间的月数。返回值将有小数位 - 例如,返回值 1.5 表示一个半月。
该TRUNC
函数在应用于数字时,将删除其所有小数,因此TRUNC(1.9999999)
将返回1
。
这是增加或减少天数的一种懒惰方式