MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串
MySQL、Oracle 的字符串、日期互轉(zhuǎn)
| MySQL | Oracle | |
|---|---|---|
| 字符串轉(zhuǎn)日期 | STR_TO_DATE(str, format) | TO_DATE(string, format) |
| 日期轉(zhuǎn)字符串 | DATE_FORMAT(date, format) | TO_CHAR(date, format) |
1 字符串轉(zhuǎn)日期
1.1 MySQL 的 字符串轉(zhuǎn)日期:STR_TO_DATE(str, format)
- str: 要轉(zhuǎn)換的字符串
- format: 日期的格式,‘%Y-%m-%d %H:%i:%s’,‘%Y/%m/%d %H:%i:%s’
日期格式設(shè)置 - 或 /,返回的日期都是 -,
最基本的日期格式:‘%Y-%m-%d’、‘%Y/%m/%d’
參考案例:
SELECT STR_TO_DATE('2024-01-10', '%Y-%m-%d') FROM TEST1; -- 返回:2024-01-10
SELECT STR_TO_DATE('2024-01-10 10', '%Y-%m-%d') FROM TEST1; -- 返回:2024-01-10
SELECT STR_TO_DATE('2024-01-10 10:10', '%Y-%m-%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 10:10:00
SELECT STR_TO_DATE('2024/01/10', '%Y/%m/%d') FROM TEST1; -- 返回:2024-01-10
SELECT STR_TO_DATE('2024/01/10', '%Y/%m/%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 00:00:00
SELECT STR_TO_DATE('2024-01', '%Y-%m') FROM TEST1; -- 返回:NULL
SELECT STR_TO_DATE('2024-01-10', '%Y/%m/%d') FROM TEST1; -- 返回:NULL
注意事項(xiàng):
(1)字符串的日期是 - 或 /,日期格式要設(shè)置成一樣的,否則會(huì)返回空。
(2)必須精確到日,如果日期格式只有年月,則會(huì)返回空。
(3)時(shí)分秒 是否返回由日期格式控制。
1.2 Oracle 的 字符串轉(zhuǎn)日期:TO_DATE(string, format)
- string: 要轉(zhuǎn)換的字符串
- format: 日期的格式,
(‘YYYY-MM-DD hh24:MI:SS’、‘YYYY/MM/DD hh24:MI:SS’)
日期格式設(shè)置 - 或 /,返回的日期都是 -
參考案例:
SELECT TO_DATE('2024-01-10', 'YYYY-MM-DD') FROM TEST1; -- 返回:2024-01-10 00:00:00
SELECT TO_DATE('2024-01-10 10:10', 'YYYY-MM-DD hh24:MI:SS') FROM TEST1; -- 返回:2024-01-10 10:10:00
SELECT TO_DATE('2024/01/10', 'YYYY/MM/DD') FROM TEST1; -- 返回:2024-01-10 00:00:00
SELECT TO_DATE('2024/01/10', 'YYYY/MM/DD hh24:MI:SS') FROM TEST1; -- 返回:2024-01-10 00:00:00
SELECT TO_DATE('2024', 'YYYY') FROM TEST1; -- 返回:2024-01-01 00:00:00
注意事項(xiàng):不管日期格式是否設(shè)置到秒,返回的日期都精確到秒。
字符串和日期格式最好匹配一致,日期格式不精確到日也會(huì)返回?cái)?shù)據(jù),對(duì)應(yīng)的值會(huì)是默認(rèn)的。
2 日期轉(zhuǎn)字符串
2.1 MySQL 的 日期轉(zhuǎn)字符串:DATE_FORMAT(date, format)
- date: 要轉(zhuǎn)換的日期
- format: 日期的格式,‘%Y-%m-%d %H:%i:%s’,‘%Y/%m/%d %H:%i:%s’
日期格式設(shè)置 - 或 /,返回的字符串則是 - 或 /,
最基本的日期格式:‘%Y-%m-%d’、‘%Y/%m/%d’
參考案例:
SELECT DATE_FORMAT('2024-01-10', '%Y-%m-%d') FROM TEST1; -- 返回:2024-01-10
SELECT DATE_FORMAT('2024-01-10 10:10:10', '%Y-%m-%d %H:%i:%s') FROM TEST1; -- 返回:2024-01-10 10:10:10
SELECT DATE_FORMAT('2024/01/10', '%Y/%m/%d') FROM TEST1; -- 返回:2024/01/10
SELECT DATE_FORMAT('2024/01/10', '%Y/%m/%d %H:%i:%s') FROM TEST1; -- 返回:2024/01/10 00:00:00
SELECT DATE_FORMAT('2024-01', '%Y-%m') FROM TEST1; -- 返回:NULL
SELECT DATE_FORMAT('2024-01-10', '%Y/%m/%d') FROM TEST1; -- 返回:2024/01/10
注意事項(xiàng):必須精確到日,如果日期格式只有年月,則會(huì)返回空。返回的字符串由日期格式控制。
2.2 Oracle 的 日期轉(zhuǎn)字符串:TO_CHAR(date, format)
- date: 要轉(zhuǎn)換的日期
- format: 日期的格式,
(‘YYYY-MM-DD hh24:MI:SS’、‘YYYY/MM/DD hh24:MI:SS’)
參考案例:
SELECT TO_CHAR(TO_DATE('2024-01-10', 'YYYY-MM-DD'), 'YYYY-MM-DD') FROM TEST1; -- 返回:2024-01-10
SELECT TO_CHAR(TO_DATE('2024-01-10 10:10', 'YYYY-MM-DD hh24:MI'), 'YYYY-MM-DD hh24:MI:SS') FROM TEST1; -- 返回:2024-01-10 10:10:00
SELECT TO_CHAR(TO_DATE('2024/01/10', 'YYYY/MM/DD'), 'YYYY/MM/DD') FROM TEST1; -- 返回:2024/01/10
SELECT TO_CHAR(TO_DATE('2024/01/10', 'YYYY/MM/DD'), 'YYYY/MM/DD hh24:MI:SS') FROM TEST1; -- 返回:2024/01/10 00:00:00
SELECT TO_CHAR(TO_DATE('2024', 'YYYY'), 'YYYY') FROM TEST1; -- 返回:2024
注意事項(xiàng):要轉(zhuǎn)換的日期必須是日期類型,返回的字符串由日期格式控制。
總結(jié)
到此這篇關(guān)于MySQL/Oracle數(shù)據(jù)庫的字符串轉(zhuǎn)日期、日期轉(zhuǎn)字符串的文章就介紹到這了,更多相關(guān)MySQL/Oracle字符串和日期互轉(zhuǎn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 詳解MySQL日期 字符串 時(shí)間戳互轉(zhuǎn)
- Mysql中STR_TO_DATE函數(shù)使用(字符串轉(zhuǎn)為日期/時(shí)間值)
- MySQL 生成隨機(jī)數(shù)字、字符串、日期、驗(yàn)證碼及 UUID的方法
- MySQL?datetime類型與時(shí)間、日期格式字符串大小比較的方法
- MySQL中字符串比較大小詳解(日期字符串比較問題)
- mysql常用函數(shù)實(shí)例總結(jié)【聚集函數(shù)、字符串、數(shù)值、時(shí)間日期處理等】
- 關(guān)于mysql中時(shí)間日期類型和字符串類型的選擇
- Oracle 函數(shù)大全[字符串函數(shù),數(shù)學(xué)函數(shù),日期函數(shù)]
- Oracle to_char 日期轉(zhuǎn)換字符串語句分享
- Oracle生成隨機(jī)數(shù)字、字符串、日期、驗(yàn)證碼及 UUID的方法
相關(guān)文章
MySQL慢查詢優(yōu)化從30秒到300毫秒的完整過程
文章介紹了如何優(yōu)化一個(gè)響應(yīng)時(shí)間為30秒的SQL接口,將響應(yīng)時(shí)間優(yōu)化到300毫秒的過程,通過開啟慢查詢?nèi)罩尽⒎治鯯QL執(zhí)行計(jì)劃、添加聯(lián)合索引和優(yōu)化查詢技巧等步驟,解決了慢查詢問題,文章還分享了索引設(shè)計(jì)原則、實(shí)用工具和遠(yuǎn)程數(shù)據(jù)庫排查技巧,需要的朋友可以參考下2025-12-12
MySQL線上使用經(jīng)驗(yàn)分享(附詳細(xì)代碼)
在數(shù)據(jù)庫日常運(yùn)維中,DBA經(jīng)常會(huì)遇到各種線上問題,這篇文章主要介紹了MySQL線上使用經(jīng)驗(yàn)分享的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2026-02-02
MySQL數(shù)據(jù)庫誤刪數(shù)據(jù)該怎么解決(這里有救!)
在日常運(yùn)維工作中,對(duì)于mysql數(shù)據(jù)庫的備份是至關(guān)重要的,下面這篇文章主要介紹了MySQL數(shù)據(jù)庫誤刪數(shù)據(jù)該怎么解決的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-09-09
通過sysbench工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫的性能測(cè)試的方法
sysbench是一款壓力測(cè)試工具,可以測(cè)試系統(tǒng)的硬件性能,也可以用來對(duì)數(shù)據(jù)庫進(jìn)行基準(zhǔn)測(cè)試。這篇文章主要介紹了通過sysbench工具實(shí)現(xiàn)MySQL數(shù)據(jù)庫的性能測(cè)試 ,需要的朋友可以參考下2019-07-07
關(guān)于mysql 8.x 中insert ignore的性能問題
這篇文章主要介紹了關(guān)于mysql 8.x 中insert ignore的性能問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-08-08
揭秘SQL優(yōu)化技巧 改善數(shù)據(jù)庫性能
這篇文章是以 MySQL 為背景,很多內(nèi)容同時(shí)適用于其他關(guān)系型數(shù)據(jù)庫,需要有一些索引知識(shí)為基礎(chǔ),重點(diǎn)講述如何優(yōu)化SQL,來提高數(shù)據(jù)庫的性能2012-01-01
Mysql覆蓋表中重復(fù)記錄的兩種實(shí)現(xiàn)方式
replaceinto和onduplicatekeyupdate這兩種方式都需要表中存在主鍵或者唯一索引,前者會(huì)先刪除再插入,后者則直接更新,如果沒有主鍵或唯一索引,則兩者都相當(dāng)于insertinto操作2026-04-04

