MySQL的日期和韶华榜样楷模
作者:天极软件 来历:天极软件
日期和韶华榜样楷模是DATETIME
、DATE
、TIMESTAMP
、TIME
和YEAR
。这些的每一个都有合法值的一个范围,而“零”当你指定的确不合法的值时被运用。注重,MySQL容许你存储某个“不严酷地”合法的日期值,譬喻1999-11-31
,缘由我们以为它是运用法式的责任来措置赏罚日期搜检,而不是SQL效劳器。为了使日期搜检更“快”,MySQL仅搜检月份在0-12的范围,天在0-31的范围。上述范围多么被定义是因为MySQL容许你在一个DATE
或DATETIME
列中存储日期,这里的天或月是零。这对存储你不知道准确的日期的一个生日的运用法式来说是极端无效的,在这种景象下,你复杂地存储日期象1999-00-00
或1999-01-00
。(当然你不克不及希冀从函数如DATE_SUB()
或DATE_ADD()
获得近似以这些日期的准确值)。
当用日期和韶华义务时,这里是的一些要记着的一样平常思索:
- MySQL对一个给定的日期或韶华榜样楷模以榜样楷模的格局检索,但是它试图为你供给的值评释成很多格局(譬喻,当你指定一个值被赋给或与对照一个日期或韶华榜样楷模时),但是只支持有在下列大节刻画的格局。希冀你供给合法的值,而且假定你以其他格局运用这些值,可以或许形成无法预料的后果。
- 只管MySQL试图以多种格局评释值,但它总是希冀日期值的年份部分在最左面,日期必需以年-月-日的按次给出(譬喻,
'98-09-04'
),而不因此其他处所常用的月-日-年或日-月-年的次第按次(譬喻,'09-04-98'
、'04-09-98')。 - 假定一个值在数字的上下文景象中被运用,MySQL自动变更一个日期或韶华榜样楷模值到一个数字,反已往也云云。
- 当MySQL碰着一个日期或韶华榜样楷模的值赶过范围或对给榜样楷模不合法(见本节的下手着手)时,它将该榜样楷模的值变更到“零”值。(破例的是赶过范围的
TIME
值被剪切为适合的TIME
范围端点值。)下表施展分析对每种榜样楷模的“零”值的格局: 列榜样楷模 “零”值
DATETIME
'0000-00-00 00:00:00'
DATE
'0000-00-00'
TIMESTAMP
00000000000000
(长度取决于施展分析尺寸)
TIME
'00:00:00'
YEAR
0000
- “零”值是特别的,但是你能运用在表中施展分析的值来分明地存储或引用他们。你也可以运用值
'0'
或0
做到, 这更苟且写。 - 在MyODBC 2.50.12和以上版本中,由MyODBC运用的“零”日期或韶华值被自动变更到
NULL
,因为ODBC不克不及措置赏罚多么的值。
版权声明: 原创作品,容许转载,转载时请务必以超链接情势标明文章 原始情由 、作者信息和本声明。不然将清查法令责任。