相关文件10bet官方网站 本手册下载 从本手册中摘录

9.1.3日期和时间字面量

日期和时间值可以用几种格式表示,例如带引号的字符串或数字,这取决于值的确切类型和其他因素。例如,在MySQL需要一个日期的上下文中,它会解释任何日期'2015-07-21'“20150721”, 和20150721作为约会。

本节介绍日期和时间文字的可接受格式。有关时间数据类型的更多信息,例如允许值的范围,请参阅第11.2节,“日期和时间数据类型”

标准SQL和ODBC日期和时间字面量。标准SQL要求使用type关键字和字符串指定时态文字。关键字与字符串之间的空格是可选的。

日期 'str“时间”str'时间戳'str

MySQL识别但与标准SQL不同,不需要类型关键字。要标准符合标准符合标准的应用程序应包括时间文字的类型关键字。

MySQL还可以识别与标准SQL语法相对应的ODBC语法:

{d 'str'} {t'str'} {ts'str'}

MySQL使用type关键字和ODBC结构来生成日期时间, 和DATETIME值,如果指定,则包括末尾的小数秒部分。的时间戳语法产生A.DATETIMEmysql的价值,因为DATETIME具有更紧密对应于标准SQL的范围时间戳类型,有一年的范围00019999.(MySQL时间戳年的范围是1970年2038..)

日期和时间上下文中的字符串和数字文字。MySQL承认日期这些格式的值:

  • 作为一个字符串yyyy-mm-dd或者YY-MM-DD格式。一个轻松语法是允许的:任何标点字符都可以用作日期部分之间的分隔符。例如,“2012-12-31”'2012/12/31'2012 ^ ^ 12 31, 和'2012 @ 12 @ 31'是等价的。

  • 作为一个没有分隔符的字符串名称或者yymmdd.格式化,只要该字符串就会作为日期。例如,'20070523''070523'被解读为'2007-05-23',但'071332'是非法的(它有荒谬的月和日部分),并成为“0000-00-00”

  • 作为一个数字名称或者yymmdd.格式化,只要该数字就会作为日期。例如,19830905830905被解读为“1983-09-05”

MySQL承认DATETIME时间戳这些格式的值:

  • 作为一个字符串YYYY-MM-DD hh: mm: ss或者YY-MM-DD hh: mm: ss格式。一个轻松这里也允许语法:任何标点字符都可以用作日期部分或时间部分之间的分隔符。例如,“2012-12-31 11:30:45”2012年^ ^ 12日31日11 + 30 + 45 ''2012/12/31 11 * 30 * 45', 和“45 30 2012 @12@31 11 ^ ^”是等价的。

    日期和时间部分与小数秒部分之间唯一可识别的分隔符是小数点。

    日期和时间部分可以用T而不是一个空间。例如,“2012-12-31 11:30:45”'2012-12-31T11:30:45'是等价的。

  • 作为一个没有分隔符的字符串yyyymmddhhmmss.或者YYMMDDHHMMSS格式化,只要该字符串就会作为日期。例如,'20070523091528''070523091528'被解读为“2007-05-23 09:15:28”,但“071122129015”是非法的(它有一个典型的分钟部分)并成为'0000-00-00 00:00:00'

  • 作为一个数字yyyymmddhhmmss.或者YYMMDDHHMMSS格式化,只要该数字就会作为日期。例如,19830905132800830905132800被解读为“1983-09-05 13:28:00”

一个DATETIME或者时间戳值可以包括尾随分秒部分,高达微秒(6位)精度。分数部分应始终与小数点与其他时间分开;没有识别其他小数分隔符。有关MySQL中的小数秒数支持的信息,请参阅第11.2.6节“时间值分数”

包含两位数年份的日期是不明确的,因为世纪是未知的。MySQL使用以下规则解释两位数的年份值:

  • 年份的年份值70-99变得1970 - 1999

  • 年份的年份值00-69变得2000 - 2069

另请参阅第11.2.8节,“两位数年份”

对于指定为包含日期部分分隔符的字符串指定的值,不必指定少于的月份或日值的两位数10“2015-6-9”是相同的'2015-06-09'.类似地,对于指定为包含时间部分分隔符的字符串的值,不需要为小于的小时、分钟或秒值指定两个数字10“2015-10-30 1:2:3”是相同的'2015-10-30 01:02:03'

作为数字指定的值应该是6、8、12或14位数字长。如果一个数字长度为8位或14位,则认为它在名称或者yyyymmddhhmmss.格式,年份由前4位数字给出。如果数字是6位或12位,则假定它在yymmdd.或者YYMMDDHHMMSS格式,年份由前2位数字给出。不属于这些长度的数字被解释为以最接近的长度填充前导零。

指定为非分隔字符串的值将根据其长度进行解释。对于长度为8或14个字符的字符串,年份被假定为由前4个字符给出。否则,假定年份是由前两个字符给出的。从左到右对字符串进行解释,查找年、月、日、小时、分钟和秒的值,查找字符串中出现的所有部分。这意味着您不应该使用少于6个字符的字符串。例如,如果您指定“9903”,认为这代表1999年3月,MySQL将其转换为日期值。这是因为年和月值是99.03,但白天的部分完全缺失了。但是,您可以显式地指定值0来表示缺少的月或日部分。例如,插入值'1999-03-00', 用“990300”

MySQL承认时间这些格式的值:

  • 作为一个字符串“D hh: mm: ss”格式。您还可以使用以下方法之一轻松语法:“hh: mm: ss”'hh:mm''d hh:mm''d hh',或“党卫军”.在这里D代表几天,可以从0到34的值。

  • 作为一个没有分隔符的字符串'hhmmss'格式化,只要它有一个有意义的时间。例如,'101112'是理解为“10:11:12”,但'109712'是非法的(它有一个典型的分钟部分)并成为'00:00:00'

  • 作为一个数字hhmmss格式化,只要它有一个有意义的时间。例如,101112是理解为“10:11:12”.也可以理解以下替代格式:党卫军mms,或hhmmss

中可识别尾随的小数秒部分“D hh: mm: ss.fraction”'hh:mm:ss.fraction''hhmmss.fraction', 和hhmmss.fraction时间格式,分数是高达微秒(6位)精度的分数部分。分数部分应始终与小数点与其他时间分开;没有识别其他小数分隔符。有关MySQL中的小数秒数支持的信息,请参阅第11.2.6节“时间值分数”

时间作为包含时间零件分隔符的字符串指定的值,不需要指定少于的数小时,分钟或秒值的两位数10“8:3:2”是相同的'08:03:02'