欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL對(duì)字符串使用STR_TO_DATE()函數(shù)詳解

 更新時(shí)間:2025年03月08日 16:34:43   作者:ptw-cwl  
文章介紹了MySQL中的STR_TO_DATE()函數(shù),用于將字符串轉(zhuǎn)換為日期時(shí)間類型,轉(zhuǎn)換時(shí)需要注意字符串格式、日期有效性等問(wèn)題

MySQL字符串使用STR_TO_DATE()函數(shù)

前面我們利用 date_formate() 函數(shù),按照自己希望的格式來(lái)輸出日期時(shí)間。

我們從用戶界面接收到的信息都是以字符串的形式在進(jìn)行傳遞,如何把字符串轉(zhuǎn)換為日期類型進(jìn)行存儲(chǔ)呢?可使用 str_to_date() 函數(shù)。

把字符串轉(zhuǎn)換為日期時(shí)間

需要注意以下幾點(diǎn):

  1. 待轉(zhuǎn)換字符串中只能出現(xiàn)數(shù)字,否則返回結(jié)果為 null;
  2. 如果格式字符串僅包含日期,則待轉(zhuǎn)字符串至少需要 8 位數(shù)字,轉(zhuǎn)換時(shí)默認(rèn)前四位是年份,中間兩位是月份,最后兩位是日期,格式字符串無(wú)需使用 - 區(qū)分日期各部分,結(jié)果會(huì)自動(dòng)用 - 拼接日期各個(gè)部分;
  3. 轉(zhuǎn)換后日期時(shí)間必須有效,否則返回結(jié)果為 null;
  4. 如果被轉(zhuǎn)字符串超出 8 位且格式字符串中無(wú)時(shí)間格式,則自動(dòng)取前 8 位轉(zhuǎn)換為日期;
  5. 格式字符串可包含時(shí)間格式,格式字符串無(wú)需使用 : 區(qū)分時(shí)間各部分,結(jié)果中的時(shí)間部分會(huì)自動(dòng)用 : 連接各個(gè)部分。

str_to_date() 函數(shù)的用法和 date_format() 基本一致,只是輸出數(shù)據(jù)的類型不同,前提都需要熟悉輸出格式,參照date_format() 。

接下來(lái)就上述5點(diǎn)注意事項(xiàng)進(jìn)行舉例說(shuō)明

(這一段說(shuō)明是針對(duì) mysql 的,webide 使用的是兼容 mysql 的 MariaDB,在此環(huán)境下進(jìn)行下面 5 點(diǎn)說(shuō)明的實(shí)驗(yàn),可能會(huì)得到不同結(jié)果):

待轉(zhuǎn)換字符串中只能出現(xiàn)數(shù)字,否則返回結(jié)果為 null。

select str_to_date('2020070a','%Y%m%d');

輸出結(jié)果:

 +----------------------------------+
 | str_to_date('2020070a','%Y%m%d') |
 +----------------------------------+
 | NULL                             |
 +----------------------------------+
 1 row in set, 2 warnings (0.00 sec)

如果格式字符串僅包含日期,則待轉(zhuǎn)字符串至少需要 8 位數(shù)字。

select str_to_date('202007','%Y%m%d');

輸出結(jié)果:

 +--------------------------------+
 | str_to_date('202007','%Y%m%d') |
 +--------------------------------+
 | NULL                           |
 +--------------------------------+
 1 row in set, 1 warning (0.00 sec)

注意:字符串 202007 低于 8 位,其結(jié)果返回 null。

轉(zhuǎn)換后日期時(shí)間必須有效,否則返回結(jié)果為 null。

select str_to_date('20201301','%Y%m%d');

輸出結(jié)果:

 +----------------------------------+
 | str_to_date('20201301','%Y%m%d') |
 +----------------------------------+
 | NULL                             |
 +----------------------------------+
 1 row in set, 2 warnings (0.00 sec)

注意:20201301 轉(zhuǎn)換為日期后得到的月份是 13,超出有效范圍,故結(jié)果返回 null。

如果被轉(zhuǎn)字符串超出 8 位且格式字符串中無(wú)時(shí)間格式,則自動(dòng)取前 8 位轉(zhuǎn)換為日期。

select str_to_date('2020070110','%Y%m%d');

輸出結(jié)果:

 +------------------------------------+
 | str_to_date('2020070110','%Y%m%d') |
 +------------------------------------+
 | 2020-07-01                         |
 +------------------------------------+
 1 row in set, 1 warning (0.00 sec)

格式字符串可以包含時(shí)間格式。

select str_to_date('20200701104523','%Y%m%d%H%i%S');

輸出結(jié)果:

 +----------------------------------------------+
 | str_to_date('20200701104523','%Y%m%d%H%i%S') |
 +----------------------------------------------+
 | 2020-07-01 10:45:23                          |
 +----------------------------------------------+
 1 row in set (0.00 sec)

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論