表示时间值的DATE和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。每个时间类型有一个有效值范围和一个“零”值,当指定不合法的MySQL不能表示的值时使用“零”值。TIMESTAMP类型有专有的自动更新特性,将在后面描述。
这是各个时间日期类型所代表的日期精度
DATETIME :‘2012-07-17 18:18’
DATE : “2012-07-17”
TIMESTAMP‘2012-07-17 18:18’
TIME :“18:18”
YEAR :”2012“
各个日期类的数值范文请查询mysql手册
如果试图插入一个不合法的日期,MySQL将给出警告或错误。可以使用ALLOW_INVALID_DATES SQL模式让MySQL接受某些日期,例如'1999-11-31'。当你想要保存一个“可能错误的”用户已经在数据库中指定(例如,以web形式)用于将来处理的值时很有用。在这种模式下,MySQL只验证月范围为从0到12,日范围为从0到31。这些范围可以包括零,因为MySQL允许在DATE或DATETIME列保存日/月和日是零的日期。这在应用程序需要保存一个你不知道确切日期的生日时非常有用。在这种情况下,只需要将日期保存为'1999-00-00'或'1999-01-00'。如果保存此类日期,DATE_SUB()或DATE_ADD等需要完整日期的函数不会得到正确的结果。(如果你不想在日期中出现零,可以使用NO_ZERO_IN_DATE
SQL模式)。
MySQL还允许将'0000-00-00'保存为“伪日期”(如果不使用NO_ZERO_DATE SQL模式)。这在某些情况下比使用NULL值更方便(并且数据和索引占用的空间更小)。
将sql_mode系统变量设置为相应模式值,可以更确切你想让MySQL支持哪种日期。
当使用日期和时间类型时应记住以下几点:
· MySQL以标准输出格式检索给定日期或时间类型的值,但它尽力解释你指定的各种输入值格式(例如,当你指定一个分配给或与日期或时间类型进行比较的值时)。只支持下面章节中描述的格式。期望你能提供有效值。如果你使用其它格式的值会发生意想不到的结果。
· 包含两位年值的日期会令人模糊,因为世纪不知道。MySQL使用以下规则解释两位年值:
o 70-99范围的年值转换为1970-1999。
o 00-69范围的年值转换为2000-2069。
· 尽管MySQL尝试解释几种格式的值,日期总是以年-月-日顺序(例如,'98-09-04'),而不是其它地方常用的月-日-年或日-月-年顺序(例如,'09-04-98','04-09-98')。
· 如果值用于数值上下文中,MySQL自动将日期或时间类型的值转换为数字,反之亦然。
· 当 MySQL遇到一个日期或时间类型的超出范围或对于该类型不合法的值时,它将该值转换为该类的“零”值。一个例外是超出范围的TIME值被裁剪到TIME范围的相应端点。
下面的表显示了各类“零”值的格式。请注意如果启用NO_ZERO_DATE SQL模式,使用这些值会产生警告。
列类型
|
“零”值
|
DATETIME
|
'0000-00-00 00:00:00'
|
DATE
|
'0000-00-00'
|
TIMESTAMP
|
00000000000000
|
TIME
|
'00:00:00'
|
YEAR
|
0000
|
· “零”值是特殊值,但你可以使用表内显示的值显式保存或引用它们。你也可以使用值'0'或0来保存或引用,写起来更容易。
分享到:
相关推荐
MySQL日期数据类型、MySQL时间类型使用总结
主要介绍了如何选择合适的MySQL日期时间类型来存储你的时间,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
MySQL日期数据类型、MySQL时间类型使用总结.doc
MySQL日期数据类型、MySQL时间类型使用总结.docx
2011年MySQL日期数据类型、MySQL时间类型使用总结.doc
MySQL日期数据类型、MySQL时间类型使用总结,适用于 MySQL 5.X 及以上版本
MySQL 日期和时间类型.pdf
mysql日期和时间格式转,囊括了mysql所有数据类型
有关"mysql日期时间相关函数纪要"一文中的截图参照可在下载此附件Excel进行获取!
里面详细介绍了mysql中日期与时间戳的转换
MySQL支持的日期和时间类型有 DATETIME、TIMESTAMP、DATE、TIME、YEAR ,几种类型比较如下: 涉及到日期和时间字段类型选择时,根据存储需求选择合适的类型即可。 2.日期和时间相关函数 处理日期和时间字段的函数...
在mysql数据库中,有一个datetime类型的字段用于存储记录的日期时间值。python程序中有对应的一个datetime变量dt。 现在需要往mysql数据库中添加记录,每次添加时,将datetime型变量dt写入mysql数据库tablename表中...
4. 不能使用mysql提供的时间函数 结论:适合需要进行大量时间范围查询的数据表 datetime(javaBean中用Date类型) 1. 占用8个字节 2. 允许为空值,可以自定义值,系统不会自动修改其值。 3. 实际格式储存(Just...
Java中数据类型和MYSQL中数据类型的对比 1、Java和MySQL数据类型参照图 2、MySQL数据类型分类 (1)数值 (2)日期/时间 (3)字符串(字符)类型。
数据库和表的创建与管理 表的字段类型 课程目标 掌握 —— 不同数据类型的选择。 理解 —— MySQL支持的数据类型;...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使
注意,如果依着包含一个时间部分的间隔增加或减少一个日期值,该日期值将被自动地转换到一个日期时间值: mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 DAY); -> 1999-01-02mysql> SELECT DATE_ADD("1999-01-...
MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。 日期类型 存储空间 日期格式 日期范围 ———— ——— ——————— —————————————– datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000...