MySQL 常用日期函数

用一条sql作为例子,来总结sql用到的日期。

SELECT active_cap,reverse_active_cap,forward_reactive_cap,reverse_reactive_cap,
if(
    2019 < LEFT(NOW(),4),
    str_to_date(DATE_SUB(CONCAT(2019,'1231'),INTERVAL -1 DAY),'%Y-%m-%d %H:%i:%s'),
    str_to_date(DATE_SUB(CONCAT(collect_time,'00'),INTERVAL 0 DAY),'%Y-%m-%d %H:%i:%s')
) meter_time
from (
SELECT
    active_cap, reverse_active_cap, forward_reactive_cap, reverse_reactive_cap, s_Id, busi_code, collect_time from pms_meter_t
WHERE active_cap IS NOT NULL AND meter_type = 1 AND valid = 1
AND collect_time >= concat(2019,'01010000')
AND collect_time <  concat(replace(DATE_SUB(concat(2019,'1231'),INTERVAL -1 DAY),'-',''),'0000')
AND s_Id = 'NN1_1'
ORDER BY collect_time desc  
) meter GROUP BY meter.busi_code , meter.s_Id

NOW()是获取当前时间 2019-02-01 15:36:12
STR_TO_DATE(str,format)函数是将时间格式的字符串(str),按照所提供的显示格式(format)转换为DATETIME类型的值。
DATE_FORMAT(date,format)函数则是把数据库的日期转换为对应的字符串格式。
format:常用如:%Y-%m-%d %H:%i:%s ,%Y-%m-%d
DATE_ADD(date,INTERVAL expr type)是mysql中内置函数date_add和date_sub能对指定的时间进行增加或减少一个指定的时间间隔,语法如下:
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
其中date是指定的日期,INTERVAL为关键词,expr是具体的时间间隔,type是时间单位。注意:type可以复合型的,比如 YEAR_MONTH。如果type不是复合型的,DATE_ADD和DATE_SUB其实可以通用,因为expr可以为一个负数。
type :常用如:MICROSECOND,SECOND,MINUTE,HOUR,DAY,WEEK,MONTH,YEAR 

其他常用的如:

获取本月最后一天 :SELECT LAST_DAY(date)
获取一个日期的天/月/年:day(date) / month(date) / YEAR(date)
获取本月第一天:select date_add(curdate(), interval - day(curdate()) + 1 day)
 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值