当前位置:   article > 正文

mysql函数之日期函数_mysql 查询时间段中的所有月份

mysql 查询时间段中的所有月份

目录

1.日期函数

(1)获取当前日期

(2)计算两个DATE值之间的天数

(3)获取日期所有月份的日的信息

(4)在一个日期的基础上添加时分秒信息

(5)在一个日期的基础上减去时分秒信息

(6)格式化日期

(7)获取指定日期是星期几,可以根据mysql语言的设置来返回不同国家的星期

(8)获取日期的工作日索引值,即星期日为1,星期一为2,星期六为7 

(9)提取日期的一部分,来获取当前日期的年月日,时分秒,周,季度等信息

(10)获取指定日期值的月份

(11)字符串转换为日期时间值

(12)获取当前日期时间,并可以设置0到6的小数秒精度

(13)返回两个TIME或DATETIME值之间的差值

(14)计算两个DATE或DATETIME值之间的差值

(15)获取日期的周数

(16)返回一个日期的工作日索引值,即星期一为0,星期二为1,星期日为6

(17)从指定日期值中来获取年份值

(18)获取传入日期所在月份的第一天和最后一天


1.日期函数

(1)获取当前日期

  1. 查询语句:select CURDATE(),CURRENT_DATE(),CURRENT_TIME(),CURRENT_TIMESTAMP(),NOW()
  2. 结果: 2022-12-10,2022-12-10,12:29:42,2022-12-10 12:29:42,2022-12-10 12:29:42

(2)计算两个DATE值之间的天数

  1. 查询语句:select DATEDIFF('2022/01/01','2022/01/05')
  2. 结果: -4

两个日期的格式可以不一样,结果是第一个日期减去第二个日期,如果要得到日期之间的周数和月数,可以对结果除以7或30,然后再进行四舍五入等操作

(3)获取日期所有月份的日的信息

  1. 查询语句:select DAY(NOW()),DAY(LAST_DAY(NOW()))
  2. 结果: 10 31

可以获取日期在当前月的第几天,可以结合LAST_DAY函数来获取当前月的天数

(4)在一个日期的基础上添加时分秒信息

  1. 查询语句:select DATE_ADD('2022-12-11 12:58:33',INTERVAL '1' DAY)
  2. 结果: 2022-12-12 13:58:33

单位可以设成天数,小时数,分钟数;也可以是两两的结合,中间用空格分开

无效或者错误的日期会返回null

(5)在一个日期的基础上减去时分秒信息

  1. 查询语句:select DATE_SUB('2022-12-11 12:58:33',INTERVAL '1' DAY)
  2. 结果: 2022-12-10 12:58:33

用法和上面的一致

(6)格式化日期

  1. 查询语句:select DATE_FORMAT('2022-12-11 12:58:33','%Y%m%d')
  2. 结果: 20221211

格式有很多,年月日之间也可以添加中划线或者斜线等分隔符

(7)获取指定日期是星期几,可以根据mysql语言的设置来返回不同国家的星期

  1. 查询语句:select DAYNAME(NOW())
  2. 结果: Saturday

SELECT @@lc_time_names;
SET @@lc_time_names = 'en_US';

可以通过上面两个语句来查询和设置语言环境

(8)获取日期的工作日索引值,即星期日为1,星期一为2,星期六为7 

  1. 查询语句:select DAYOFWEEK('2022-12-10 12:58:33')
  2. 结果: 7

(9)提取日期的一部分,来获取当前日期的年月日,时分秒,周,季度等信息

  1. 查询语句:select EXTRACT( YEAR FROM '2022-12-10 12:58:33') YEAR,
  2. EXTRACT( MONTH FROM '2022-12-10 12:58:33') MONTH,
  3. EXTRACT( DAY FROM '2022-12-10 12:58:33') DAY,
  4. EXTRACT( WEEK FROM '2022-12-10 12:58:33') WEEK,
  5. EXTRACT( QUARTER FROM '2022-12-10 12:58:33') QUARTER,
  6. EXTRACT( HOUR FROM '2022-12-10 12:58:33') HOUR,
  7. EXTRACT( SECOND FROM '2022-12-10 12:58:33') SECOND
  8. 结果: 2022 12 10 49 4 12 33

(10)获取指定日期值的月份

  1. 查询语句:select MONTH('2022-12-10 12:58:33')
  2. 结果: 12

(11)字符串转换为日期时间值

  1. 查询语句:select STR_TO_DATE('10-10,2022 hhhh qqqq','%m-%d,%Y')
  2. 结果: 2022-10-10
  3. 查询语句:SELECT STR_TO_DATE('2018','%Y');
  4. 结果: 2018-00-00

字符串和格式的分隔符要一致,否则无法转换成功

会忽略输入字符串末尾的额外字符

将输入字符串不提供的所有不完整的日期值设置为零

(12)获取当前日期时间,并可以设置06的小数秒精度

  1. 查询语句:select SYSDATE(6)
  2. 结果: 2022-12-10 14:11:05.472185

(13)返回两个TIME或DATETIME值之间的差值

  1. 查询语句:SELECT TIMEDIFF('12:10:10','10:10:10')
  2. 结果: 02:00:00

(14)计算两个DATEDATETIME值之间的差值

  1. 查询语句:select TIMESTAMPDIFF(month,'2018-01-01','2019-01-01')
  2. 结果: 12

单位可以设置成年月日,时分秒,周,季度等

(15)获取日期的周数

  1. 查询语句:select WEEK('2022-12-10')
  2. 结果: 49

有两个参数: 

  • date是要获取周数的日期。
  • mode是一个可选参数,用于确定周数计算的逻辑。它允许您指定本周是从星期一还是星期日开始,返回的周数应在052之间或053之间。

(16)返回一个日期的工作日索引值,即星期一为0,星期二为1,星期日为6

  1. 查询语句:select WEEKDAY('2022-12-10')
  2. 结果: 5

(17)从指定日期值中来获取年份值

  1. 查询语句:select YEAR('2022-10-10')
  2. 结果: 2022

(18)获取传入日期所在月份的第一天和最后一天

  1. 查询语句:select LAST_DAY(curdate())
  2. select DATE_ADD(curdate(),interval -day(curdate())+1 day)
  3. 结果: 2022-12-31
  4. 2022-12-01

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号