各大数据库年月日第一天问题

Orcale

本月第一天:

select to_date(to_char(sysdate,'YYYYMM')||'01','YYYYMMDD') from dual

本年第一天:

select to_date(to_char(sysdate,'YYYY')||'0101','YYYYMMDD') from dual

使用特定函數:

select trunc(sysdate,'mm')from dual --2007-1-1:当月第一天
select trunc(sysdate,'yy')from dual --2007-1-1:当年第一天
select trunc(sysdate,'dd')from dual --2007-1-14:当天
select trunc(sysdate,'day')from dual --2007-1-15:当周第一天
select trunc(sysdate)from dual --2007-1-15:当天
说明:trunc(sysdate)输出的格式为YYYY-MM-DD,但它是把时间四舍五入到了当日的零点,
即:to_char(trunc(sysdate),'YYYY-MM-DD HH24:mi:ss pm|am') = YYYY-MM-DD 00:00:00 上午

DB2

本月第一天:

select cast(current date+0 months as char(8))||'01' as date from sysibm.sysdummy1

本年第一天:

select cast(current date+0 years as char(5))||'01-01' as date from sysibm.sysdummy1

MS SQL Server

本月第一天:

SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)

本周第一天:

SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)

本年第一天:

SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)

本季度第一天:

SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)

当天的半夜:

SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)

上个月的最后一天:

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))

去年的最后一天:

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))

本月的最后一天:

SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))

本年的最后一天:

SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))

本月的第一个星期一:

select DATEADD(wk, DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值