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)