我找不到以下SQL命令的含义:
其中,to_date('2013-03-01',‘yyyy dd’)和trunc(sysdate,'mm') -1之间的日期
"-1“是什么意思?
另一个例子是
(months_between(date1,date2))+1
我找过这个,但什么也找不到。
谢谢你的建议!
发布于 2013-07-30 07:03:11
正如其他人所回答的,“日期- 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
,它也会报告一个月。
正如它所暗示的那样,函数返回两个日期之间的月数。返回值将有小数位--例如,返回值1.5意味着一个半月。
当对一个数字应用TRUNC
函数时,它将切掉它的所有小数,因此TRUNC(1.9999999)
将返回1
。
发布于 2013-07-30 06:53:28
+1
是将一天添加到日期的方法
-1
是将日期移除一天的方法。
就你的具体情况而言:
指令trunc(sysdate, 'mm') -1
删除一个月的日期,在这种情况下是在当前日期的前一个月。
指令trunc(months_between(date1, date2))+1
计算两个日期之间的月差,然后添加一个。
看看这个SQLFiddle
发布于 2013-07-30 06:53:19
这是一种增加或减去一天的懒散方法。
https://stackoverflow.com/questions/17950354
复制相似问题