如何在MySQL中把一個(gè)字符串轉(zhuǎn)換成日期,分為以下兩種情況:
成都創(chuàng)新互聯(lián)云計(jì)算的互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)13年的服務(wù)器租用、服務(wù)器托管德陽(yáng)、云服務(wù)器、網(wǎng)站空間、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn),已先后獲得國(guó)家工業(yè)和信息化部頒發(fā)的互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務(wù)許可證。專業(yè)提供云主機(jī)、網(wǎng)站空間、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
1.
無(wú)需轉(zhuǎn)化的
SELECT
*
FROM
表名 WHERE
date_sy'2016-12-01'
AND
date_sy'2016-12-05'
2.
使用DATE_FORMAT
SELECT
*
FROM
表名
WHERE
DATE_FORMAT(
date_sy,
'%Y-%m-%d')'2016-12-01'
AND
DATE_FORMAT(
date_sy,
'%Y-%m-%d')'2016-12-05'
時(shí)間戳轉(zhuǎn)時(shí)間:
mysql select from_unixtime(1604730123);
+---------------------------+
| from_unixtime(1604730123) |
+---------------------------+
| 2020-11-07 14:22:03? ? ? ?|
+---------------------------+
1 row in set (0.02 sec)
時(shí)間戳格式化
mysql SELECT from_unixtime(1604730123, '%Y-%m-%d %H:%i:%S');
+------------------------------------------------+
| from_unixtime(1604730123, '%Y-%m-%d %H:%i:%S') |
+------------------------------------------------+
| 2020-11-07 14:22:03? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |
+------------------------------------------------+
1 row in set (0.00 sec)
函數(shù):FROM_UNIXTIME
作用:將MYSQL中以INT(11)存儲(chǔ)的時(shí)間以"YYYY-MM-DD"格式來(lái)顯示。
語(yǔ)法:FROM_UNIXTIME(unix_timestamp,format)
返回表示 Unix 時(shí)間標(biāo)記的一個(gè)字符串,根據(jù)format字符串格式化。format可以包含與DATE_FORMAT()函數(shù)列出的條目同樣的修飾符。
根據(jù)format字符串格式化date值。
下列修飾符可以被用在format字符串中:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英語(yǔ)前綴的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 數(shù)字, 4 位
%y 年, 數(shù)字, 2 位
%a 縮寫的星期名字(Sun……Sat)
%d 月份中的天數(shù), 數(shù)字(00……31)
%e 月份中的天數(shù), 數(shù)字(0……31)
%m 月, 數(shù)字(01……12)
%c 月, 數(shù)字(1……12)
%b 縮寫的月份名字(Jan……Dec)
%j 一年中的天數(shù)(001……366)
%H 小時(shí)(00……23)
%k 小時(shí)(0……23)
%h 小時(shí)(01……12)
%I 小時(shí)(01……12)
%l 小時(shí)(1……12)
%i 分鐘, 數(shù)字(00……59)
%r 時(shí)間,12 小時(shí)(hh:mm:ss [AP]M)
%T 時(shí)間,24 小時(shí)(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一個(gè)星期中的天數(shù)(0=Sunday ……6=Saturday )
%U 星期(0……52), 這里星期天是星期的第一天
%u 星期(0……52), 這里星期一是星期的第一天
%% 一個(gè)文字“%”。
1
我用的是SQLyog數(shù)據(jù)庫(kù)客戶端。通過(guò)from_unixtime把Long時(shí)間轉(zhuǎn)換為日期格式。具體用法如下:select from_unixtime(1388776825);執(zhí)行即可
2
還可以增加時(shí)間格式,用法如下:
SELECT FROM_UNIXTIME( 1388776825, '%Y%m%d' ) 結(jié)果:20140104SELECT FROM_UNIXTIME( 1388776825, '%Y年%m月%d' ) 結(jié)果:2014年1月4
3
如果想逆向轉(zhuǎn)換,可以通過(guò)unix_timestamp()函數(shù)反向轉(zhuǎn)換。用法如下:
SELECT UNIX_TIMESTAMP() ;//獲取當(dāng)前時(shí)間的秒數(shù)
SELECT UNIX_TIMESTAMP('2014-03-23 10:10:40') ; //獲取指定日期格式的秒數(shù)
SELECT UNIX_TIMESTAMP('2014-03-23') ; //獲取指定日期格式的秒數(shù)
無(wú)需轉(zhuǎn)換的
你可以使用常用的格式集中的任何一個(gè)指定 DATETIME、DATE 和 TIMESTAMP 值:
一個(gè) 'YYYY-MM-DD HH:MM:SS' 或 'YY-MM-DD HH:MM:SS' 格式的字符串。一個(gè)“寬松”的語(yǔ)法是被允許的:以任何標(biāo)點(diǎn)符號(hào)作為日期部分和時(shí)間部分中的定界符。例如,'98-12-31 11:30:45'、'98.12.31 1+30+45'、'98/12/31 11*30*45' 和 '98@12@31 11^30^45' 均是等價(jià)的。
一個(gè) 'YYYY-MM-DD' 或 'YY-MM-DD' 格式的字符串。這里,一個(gè)“寬松”的語(yǔ)法同樣也是被允許的:例如,'98.12.31'、'98-12-31'、'98/12/31' 和 '98@12@31' 是等價(jià)的。
一個(gè)無(wú)定界符的 'YYYYMMDDHHMMSS' 或 'YYMMDDHHMMSS' 格式的字符串,只要字符串看起來(lái)像是一個(gè)日期。例如,'19970523091528' 和 '970523091528' 均被解釋為 '1997-05-23 09:15:28',但是 '971122129015' 卻是違法的(它的分部分是無(wú)意義的),該值被插入時(shí)將變成 '0000-00-00 00:00:00'。
一個(gè)無(wú)定界符的 'YYYYMMDD' 或 'YYMMDD' 格式的字符串,只要字符串看起來(lái)像是一個(gè)日期。例如,'19970523' 和 '970523' 被解釋成為 '1997-05-23',但是 '971332' 卻是違法的(它的月和日部分是無(wú)意義的),該值被插入時(shí)將變成 '0000-00-00'。
一個(gè) YYYYMMDDHHMMSS 或 YYMMDDHHMMSS 格式的數(shù)字,只要數(shù)字看起來(lái)像是一個(gè)日期。例如,19830905132800 和 830905132800 被解釋成為 '1983-09-05 13:28:00'。
一個(gè) YYYYMMDD 或 YYMMDD 格式的數(shù)字,只要數(shù)字看起來(lái)像是一個(gè)日期。例如,19830905 和 830905 被解釋成為 '1983-09-05'。
在一個(gè) DATETIME、DATE 或 TIMESTAMP 語(yǔ)境中,一個(gè)函數(shù)的返回值將隨之而變化,例如 NOW() 或 CURRENT_DATE。
非法的 DATETIME、DATE 或 TIMESTAMP 值將會(huì)被轉(zhuǎn)換到適當(dāng)形式的“零”值('0000-00-00 00:00:00'、'0000-00-00' 或 00000000000000)。