mysqldatetime、date、time、timestamp区别

在MySQL数据库中,时间的表示方式有很多种,包括日期(3个字节,格式为“yyyy-mm-dd”)、日期时间(8个字节,格式为“yyyy-mm-ddhh:mm:ss”"),时间(3个字节,格式为“hh:mm:ss”),时间戳(4个字节,格式为“yyyymmddhhmmss”,从1月1日开始1970年到2037年的某个时间)和年份(1字节,仅指示年份)。
Oracle数据库提供了更丰富的日期类型,例如Date(7字节,存储精确到秒)、TIMESTAMP(13字节,支持小数秒和时区)、TIMESTAMPWITHTIMEZONE(支持小数时区小时)。
INTERVAL类型用于表示时间段,例如YEARTOMONTH和DATETOSECOND。
SQLServer的datetime和Smalldatetime类型不同:datetime(8字节)用于存储范围较大的日期和时间,精确到毫秒;而Smalldatetime(4字节)则更加紧凑,只保留天和分钟,范围也更小。
范围,精确到分钟,每30秒四舍五入。

关于Mysql的日期时间类型区分、比较和常用函数

探索MySQL日期和时间类型的奥秘:深入解析和实用功能

MySQL日期和时间类型对于数据库管理至关重要。
本文将带你一一了解DateTime、TimeStamp、日期时间、年份特点、SQL中的关键比较技巧以及常用的时间函数。

1.日期时间类型详解DateTime:显示格式为YYYY-MM-DDHH:mm:ss,适合精度可达秒的业务场景。
例如,在后台设置@JSONField(format="yyyy-MM-ddHH:mm:ss")。
Timestamp:与DateTime类似,采用YYYY-MM-DDHH:mm:ss格式,但可以精确到毫秒。
当需要通用时区支持时,例如国际、国内业务,使用TimeStamp可以避免时差问题,例如后端配置@JSONField(format="yyyy-MM-ddHH:mm:ss:SSS")。
历史:简化显示为YYYY-MM-DD,即使在今天也适用于微服务。
背景值为@JSONField(format="yyyy-MM-dd")。
时间:时间部分,格式为HH:mm:ss,适合只关注日常时间的场景。
后台配置为@JSONField(format="HH:mm:ss")。
Year:纯年份,格式YYYY,用于需要年份信息的场景,比如设置背景@JSONField(format="YYYY")。
2、SQL时间比较的艺术

MySQL在时间比较方面非常灵活,相同格式的字段可以直接使用<、>、=进行操作,如:SELECT*FROMtestWHEREtimestamp_clomun='2023-08-2911:54。
:22'。
同时,还支持范围比较,例如WHEREDate_clomunBETWEEN'2023-08-28'AND'2023-08-30'。

3、日期时间函数的秘密AddDate:如SELECTADDDATE(NOW(),INTERVAL1DAY),用于添加特定的时间间隔。
AddTime:与SELECTADDTIME(NOW(),'10:10:10')相同,用于增加时间间隔。
Now:获取当前日期和时间,如SELECTNow()。
Date、CurDate和CurTime分别获取日期部分、当前日期和当前时间。
DateDiff:计算日期差,如SELECTDATEDIFF('2020-08-01','2020-08-20')。
Date_Add和Date_Sub:执行灵活的日期操作。
Date_Format:日期和时间格式,如SELECTDATE_FORMAT('2023-08-29','%Y-%m-%d%H:%i:%s')。
DayOfWeek和WeekDay:分别返回日期对应的星期几,星期日为1或星期日0。
时间、年、月、日、时、分、秒:获取日期和时间的不同部分。
通过这种深入的了解,您可以更好地处理和操作MySQL中的日期和时间数据,提高您的数据库管理效率。