mysql 14位时间格式_TianPeng » MySQL数据库中的Date,DateTime和TimeStamp类型

Date

当你需要同时包含日期和时间信息的值时则使用DATETIME类型。MySQL以’YYYY-MM-DD HH:MM:SS’格式检索和显示DATETIME值。支持的范围为’1000-01-01 00:00:00′到’9999-12-31 23:59:59′。(“支持”表示尽管先前的值可能工作,但没有保证)。

DateTime

当你只需要日期值而不需要时间部分时应使用DATE类型。MySQL用’YYYY-MM-DD’格式检索和显示DATE值。支持的范围是’1000-01-01′到 ’9999-12-31′。

TimeStamp

TIMESTAMP列类型提供一种类型,你可以使用它自动地用当前的日期和时间标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有第一个自动更新。TIMESTAMP列类型的属性不固定,取决于MySQL版本和服务器运行的SQL模式。

备注

可以使用任何常见格式指定DATETIME、DATE和TIMESTAMP值:

‘YYYY-MM-DD HH:MM:SS’或’YY-MM-DD HH:MM:SS’格式的字符串。允许“不严格”语法:任何标点符都可以用做日期部分或时间部分之间的间割符。例如,’98-12-31 11:30:45′、’98.12.31 11+30+45′、’98/12/31 11*30*45′和’98@12@31 11^30^45′是等价的。

‘YYYY-MM-DD’或’YY-MM-DD’格式的字符串。这里也允许使用“不严格的”语法。例如,’98-12-31′、’98.12.31′、’98/12/31′和’98@12@31′是等价的。

‘YYYYMMDDHHMMSS’或’YYMMDDHHMMSS’格式的没有间割符的字符串,假定字符串对于日期类型是有意义的。例如,’19970523091528′和’970523091528′被解释为’1997-05-23 09:15:28′,但’971122129015′是不合法的(它有一个没有意义的分钟部分),将变为’0000-00-00 00:00:00′。

‘YYYYMMDD’或’YYMMDD’格式的没有间割符的字符串,假定字符串对于日期类型是有意义的。例如,’19970523′和’970523′被解释为 ’1997-05-23′,但’971332′是不合法的(它有一个没有意义的月和日部分),将变为’0000-00-00′。

YYYYMMDDHHMMSS或YYMMDDHHMMSS格式的数字,假定数字对于日期类型是有意义的。例如,19830905132800和830905132800被解释为 ’1983-09-05 13:28:00′。

YYYYMMDD或YYMMDD格式的数字,假定数字对于日期类型是有意义的。例如,19830905和830905被解释为’1983-09-05′。

函数返回的结果,其值适合DATETIME、DATE或者TIMESTAMP上下文,例如NOW()或CURRENT_DATE。

无效DATETIME、DATE或者TIMESTAMP值被转换为相应类型的“零”值(’0000-00-00 00:00:00′、’0000-00-00′或者00000000000000)。

对于包括日期部分间割符的字符串值,如果日和月的值小于10,不需要指定两位数。’1979-6-9′与’1979-06-09′是相同的。同样,对于包括时间部分间割符的字符串值,如果时、分和秒的值小于10,不需要指定两位数。’1979-10-30 1:2:3′与’1979-10-30 01:02:03′相同。

数字值应为6、8、12或者14位长。如果一个数值是8或14位长,则假定为YYYYMMDD或YYYYMMDDHHMMSS格式,前4位数表示年。如果数字 是6或12位长,则假定为YYMMDD或YYMMDDHHMMSS格式,前2位数表示年。其它数字被解释为仿佛用零填充到了最近的长度。

指定为非限定符字符串的值使用给定的长度进行解释。如果字符串为8或14字符长,前4位数表示年。否则,前2位数表示年。从左向右解释字符串内出现的各部分,以发现年、月、日、小时、分和秒值。这说明不应使用少于6字符的字符串。例如,如果你指定’9903′,认为它表示1999年3月,MySQL将在你的表内插入一个“零”日期值。这是因为年和月值是99和03,但日部分完全丢失,因此该值不是一个合法的日期。但是,可以明显指定一个零值来代表缺少的月或日部分。例如,可以使用’990300′来插入值’1999-03-00′。

在一定程度上,可以将一个日期类型的值分配给一个不同的日期类型。但是,值可能会更改或丢失一些信息:

如果你为一个DATETIME或TIMESTAMP对象分配一个DATE值,结果值的时间部分被设置为’00:00:00′,因为DATE值未包含时间信息。

如果你为一个DATE对象分配一个DATETIME或TIMESTAMP值,结果值的时间部分被删除,因为DATE值未包含时间信息。

记住尽管可以使用相同的格式指定DATETIME、DATE和TIMESTAMP值,不同类型的值的范围却不同。例如,TIMESTAMP值不能早于1970或晚于2037。这说明一个日期,例如’1968-01-01′,虽然对于DATETIME或DATE值是有效的,但对于TIMESTAMP值却无效,如果分配给这样一个对象将被转换为0。

当指定日期值时请注意某些缺陷:

指定为字符串的值允许的非严格格式可能会欺骗。例如,值’10:11:12′由于‘:’间割符看上去可能象时间值,但如果用于日期上下文值则被解释为年’2010-11-12′。值’10:45:15′被转换为’0000-00-00′因为’45′不是合法月。

在非严格模式,MySQL服务器只对日期的合法性进行基本检查:年、月和日的范围分别是1000到9999、00到12和00到31。任何包含超出这些范围的部分的日期被转换成’0000-00-00′。请注意仍然允许你保存非法日期,例如’2002-04-31′。要想确保不使用严格模式时日期有效,应检查应用程序。

在严格模式,非法日期不被接受,并且不转换。

包含两位年值的日期会令人模糊,因为世纪不知道。MySQL使用以下规则解释两位年值:

00-69范围的年值转换为2000-2069。

70-99范围的年值转换为1970-1999。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在JavaScript,可以使用slice()方法来截取字符串的前几。slice()方法可以提取字符串的某个部分,并以新的字符串返回被提取的部分。它的语法是string.slice(start, end)。如果只传入一个参数start,则会从该置开始截取到字符串的末尾。所以,要截取字符串的前10,可以使用以下代码: var str = "abcdefg"; var result = str.slice(0, 10); console.log(result); // 输出:abcdefg 这样就可以得到字符串的前10字符。\[1\] #### 引用[.reference_title] - *1* [js截取字符串前几的两种方法slice()&substring()](https://blog.csdn.net/Maxueyingying/article/details/127527172)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [js截取字符串前几或者截取字符串后几](https://blog.csdn.net/tianpeng1996/article/details/121249924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [js 字符串截取方法汇总](https://blog.csdn.net/qsj0606/article/details/126886488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值