sql 语句系列(月份的第一天和最后一天)[八百章之第二十章]

前言

插播一个,从给定日期值里面提取年月日时分秒。
之所以写这个是因为使用频率太高。

mysql:

select DATE_FORMAT(CURRENT_TIMESTAMP,'%k') hr,
       DATE_FORMAT(CURRENT_TIMESTAMP,'%i') min,
       DATE_FORMAT(CURRENT_TIMESTAMP,'%s') sec,
       DATE_FORMAT(CURRENT_TIMESTAMP,'%d') dy,
       DATE_FORMAT(CURRENT_TIMESTAMP,'%m') mon,
       DATE_FORMAT(CURRENT_TIMESTAMP,'%y') yr

sql server:

select DATEPART(HOUR,getdate()) hr,
 DATEPART(MINUTE,getdate()) min,
 DATEPART(SECOND,getdate()) sec,
 DATEPART(DAY,getdate()) dy,
 DATEPART(MONTH,getdate()) mon,
 DATEPART(YEAR,getdate()) yr

计算一个月的第一天和最后一天

mysql:

select DATE_ADD(CURRENT_DATE,INTERVAL -DAY(CURRENT_DATE)+1 DAY) fistday,
LAST_DAY(CURRENT_DATE) lastday

计算最后一天函数是LAST_DAY,计算第一天,是算的今天到这个月的第一天差多少天,然后减去,加一。
sql server:

 select DATEADD(day,-day(GETDATE())+1,GETDATE()) firstday,
 DATEADD(day,-DAY(GETDATE()),DATEADD(month,1,GETDATE())) lastday

计算第一天和msql一样原理。
计算最后一天,是在当前月份的基础上加一个月,然后减去今天到这个月的第一天差多少天。得出的就是这个月最后一个天。

原文地址:https://www.cnblogs.com/aoximin/p/12678149.html