首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >SQL +/-数字的意思是?

SQL +/-数字的意思是?
EN

Stack Overflow用户
提问于 2013-07-30 06:52:13
回答 3查看 786关注 0票数 1

我找不到以下SQL命令的含义:

其中,to_date('2013-03-01',‘yyyy dd’)和trunc(sysdate,'mm') -1之间的日期

"-1“是什么意思?

另一个例子是

(months_between(date1,date2))+1

我找过这个,但什么也找不到。

谢谢你的建议!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-30 07:03:11

正如其他人所回答的,“日期- 1”从日期起减去一天。下面是有关特定SQL片段的更多详细信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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返回上个月的最后一天
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
trunc(months_between(date1, date2))+1

这给出了date1date2之间的完整月数,将任何一个月的零碎都当作一个完整的月。例如,如果您给它的日期是7/28/20137/29/2013,它将报告一个月,如果您给它7/1/20137/31/2013,它也会报告一个月。

正如它所暗示的那样,函数返回两个日期之间的月数。返回值将有小数位--例如,返回值1.5意味着一个半月。

当对一个数字应用TRUNC函数时,它将切掉它的所有小数,因此TRUNC(1.9999999)将返回1

票数 2
EN

Stack Overflow用户

发布于 2013-07-30 06:53:28

+1是将一天添加到日期的方法

-1是将日期移除一天的方法。

就你的具体情况而言:

指令trunc(sysdate, 'mm') -1删除一个月的日期,在这种情况下是在当前日期的前一个月。

指令trunc(months_between(date1, date2))+1计算两个日期之间的月差,然后添加一个。

看看这个SQLFiddle

票数 2
EN

Stack Overflow用户

发布于 2013-07-30 06:53:19

这是一种增加或减去一天的懒散方法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17950354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文