我找不到以下SQL命令的含义:
其中to_date('2013-03-01','yyyy-mm-dd')和trunc(sysdate,'mm')之间的日期 -1
“ -1 ”的含义是什么?
另一个例子是
trunc(months_between(date1,date2)) +1
我搜索过这个,但找不到东西。
感谢您的建议!
答案 0 :(得分:2)
+1
是将日期添加到日期的方式
-1
是将某一天移至日期的方法
在您的具体案例中:
指令trunc(sysdate, 'mm') -1
删除该日期的一个月,在这种情况下是当前日期之前一个月。
指令trunc(months_between(date1, date2))+1
计算两个日期之间的月份差异,然后再添加一个。
看看这个SQLFiddle
答案 1 :(得分:2)
正如其他人所回答的那样,“日期-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
,它也会报告一个月。< / p>
MONTHS_BETWEEN
function表示两个日期之间的月数。返回值将包含小数位 - 例如,返回值1.5表示一个半月。
TRUNC
函数在对数字应用时会截断其所有小数,因此TRUNC(1.9999999)
将返回1
。
答案 2 :(得分:1)
这是添加或减去日期的懒惰方式