赞
踩
本文主要介绍Mysql的日期时间类型,包括DateTime、TimeStamp、Date、Time和Year的区别、sql语句中的比较,以及常用的日期时间函数
1、DateTime
名称 | 说明 |
---|---|
显示格式 | YYYY-MM-DD HH:mm:ss |
显示范围 | 1601-01-01 00:00:00 到 9999-12-31 23:59:59 |
应用场景 | 当业务需求中需要精确到秒时,可以用这个时间格式 |
后台取值 | @JSONField(format=“yyyy-MM-dd HH:mm:ss”) |
2、TimeStamp
名称 | 说明 |
---|---|
显示格式 | YYYY-MM-DD HH:mm:ss |
显示范围 | 1601-01-01 00:00:00 到 9999-12-31 23:59:59 |
应用场景 | 当业务需求中需要精确到秒/毫秒时,或者需要不同时区,可以用这个时间格式 |
后台取值 | @JSONField(format=“yyyy-MM-dd HH:mm:ss:SSS”)(这里只会精确到秒) |
3、Date
名称 | 说明 |
---|---|
显示格式 | YYYY-MM-DD |
显示范围 | 1601-01-01 到 9999-12-31 |
应用场景 | 当业务需求中只需要精确到天时,可以用这个时间格式 |
后台取值 | @JSONField(format=“yyyy-MM-dd”) |
4、Time
名称 | 说明 |
---|---|
显示格式 | HH:mm:ss |
显示范围 | 00:00:00 到 23:59:59 |
应用场景 | 当业务需求中只需要每天的时间,可以用这个时间格式 |
后台取值 | @JSONField(format=“HH:mm:ss”)) |
5、Year
名称 | 说明 |
---|---|
显示格式 | YYYY |
显示范围 | 1601 到 9999 |
应用场景 | 当业务需求中只需要每年的,可以用这个时间格式 |
后台取值 | @JSONField(format=“YYYY”)) |
重点说明一下DateTime和TimeStamp的区别
1、精确到毫秒都用TimeStamp
2、如果应用是需要适配不同时区的,有国内和国外的使用,使用TimeStamp就不会出现这种时差的问题,用dateTime就会出现各种各样的问题
mysql中时间的比较灵活,只要格式相同,可以直接使用 <、>、= 进行比较,适应所有时间字段,也可以使用 between and 来进行比较。
- -- timestamp类型的时间比较
- SELECT * FROM test where timestamp_clomun = '2023-08-29 11:54:22'
-
- -- datetime类型的时间比较
- select * from test where datetime_clomun = '2023-08-29 11:54:22'
-
- -- time类型的时间比较
- SELECT * FROM test where time_clomun = '11:54:22'
-
- -- date类型的时间比较
- SELECT * FROM test where date_clomun = '2023-08-29'
-
- -- year类型的时间比较
- SELECT * FROM test where year_clomun = '2023'
-
- -- year类型的时间比较
- SELECT * FROM test where year_clomun between '2003' and '2023'
-
- -- 查询最近两天的数据
- SELECT * FROM base_user u where u.crt_time >= now()-interval 2 day
AddDate():增加一个日期(天、周等)--select ADDDATE(NOW(),INTERVAL 1 DAY)
AddTime():增加一个是时间(时、分等)--select ADDTIME(NOW(),"10:10:10")
Now():返回当前日期和时间--select Now()
CurDate():返回当前日期
CurTime():返回当前时间
Date():返回日期时间的日期部分
DateDiff():计算两个日期之差--select DATEDIFF("2020-08-01","2020-08-20")
-语法: datediff(string enddate, string startdate)。返回结束日期减去开始日期的天数
Date_Add():高度灵活的日期运算函数
Date_Sub(): 返回两个日期之间的间隔
-语法: date_sub (string startdate, int days)。 返回开始日期startdate减少days天后的日期。
Date_Format():返回一个格式化的日期或时间串
DayOfWeek():对于一个日期,返回对应的星期几,显示的一周是从周日开始周六结束,其中周日为1,周六为7
WeekDay(): 对于一个日期,返回对应的星期几,显示的一周是从周一开始周日结束,其中周一为0,周日为6--select DAYOFWEEK("2020-09-21"),WEEKDAY("2020-09-21")
Time():返回一个日期时间的时间部分--select TIME(now())
Year():返回一个日期的年份部分
Month():返回一个日期的月份部分
Day():返回一个日期的天数部分
Hour():返回一个时间的小时部分
Minute():返回一个时间的分钟部分
Second():返回一个时间的秒数部分
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。