关系型数据库时间类型字段
MySQL(以及对应格式) | SQL Server(以及对应格式) | Oracle |
time(HH-MM-SS) |
time (12:35:29.1234567) |
date(YYYY-MM-DD HH:MM:SS) |
date(YYYY-MM-DD) |
date (YYYY-MM-DD) |
timestamp (YYYY-MM-DD HH:MM:SS) |
datetime(YYYY-MM-DD HH:MM:SS) |
smalldatetime (2007-05-08 12:35:00) |
|
timestamp(YYYY-MM-DD HH:MM:SS) |
datetime (2007-05-08 12:35:29.123) |
|
|
datetime2 (2007-05-08 12:35:29.1234567) |
|
|
datetimeoffset (2007-05-08 12:35:29.1234567 +12:15) |
|
MySQL时间字段类型说明
# MySQL中,datetime和timestamp区别
/*
timestamp是4字节,表示时间范围
时间范围从1970-01-01 00:00:01到2038-01-19 03:14:07,存储的是从1970-01-01 00:00:00到特定时间的秒数,所以同一个时间戳 在不同时区的人看来表示的时间是不同的
datetime是8个字节,存储的就是时间的数字
范围围从1000-01-01 00:00:00到9999-12-31 23:59:59,可以表达的时间范围比较大,由于是直接存的时间数值,所以不同时区的人看到的是相同的时间
*/
Oracle时间类型字段说明
# Oracle中的时间类型只有date和timestamp两种类型,timestamp比date更精确
# Oracle中timestamp和date的区别
/*
都是表示年月日时分秒,但timestamp类型不仅可以保存日期和时间,还能保存小数位,小数位可以指定0-9,默认为6位
*/
sqlserver时间字段说明
/*
time:12:35:29.1234567,仅存储时间。精度为 100 纳秒
date:仅存储日期。从 0001 年 1 月 1 日 到 9999 年 12 月 31 日。
smalldatetime:2007-05-08 12:35:00。从 1900 年 1 月 1 日 到 2079 年 6 月 6 日,精度为 1 分钟。
datetime:2007-05-08 12:35:29.123。从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 3.33 毫秒。
datetime2:2007-05-08 12:35:29.1234567,从 1753 年 1 月 1 日 到 9999 年 12 月 31 日,精度为 100 纳秒。
datetimeoffset:2007-05-08 12:35:29.1234567 +12:15,与 datetime2 相同,外加时区偏移。
*/