MySQL中提供了對JSON數(shù)據(jù)類型的支持,通過使用JSON函數(shù)、操作符和修飾符可以對JSON數(shù)據(jù)進(jìn)行各種操作。其中要特別注意的就是如何對日期進(jìn)行JSON格式化。
SELECT JSON_OBJECT('date', DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s')) AS json_date;
上面的例子中,使用JSON_OBJECT函數(shù)將日期格式化為json格式,并使用DATE_FORMAT函數(shù)指定格式。在這里,日期的格式化方式可以按照業(yè)務(wù)需求進(jìn)行調(diào)整。
如果需要從JSON格式化的日期中提取日期,可以使用JSON_UNQUOTE和STR_TO_DATE函數(shù),如下所示:
SELECT STR_TO_DATE( JSON_UNQUOTE(JSON_EXTRACT('{"created_at": "2021-09-01 10:00:00"}', '$.created_at')), '%Y-%m-%d %H:%i:%s' ) AS created_at;
上面的例子中,使用JSON_EXTRACT函數(shù)從JSON字符串中提取created_at字段,使用JSON_UNQUOTE函數(shù)去掉字段值中的雙引號(hào),使用STR_TO_DATE函數(shù)將字符串轉(zhuǎn)換為DATE類型,再次使用DATE_FORMAT函數(shù)按照需要的格式進(jìn)行格式化。
通過以上的方式,可以輕松實(shí)現(xiàn)MySQL中JSON格式化日期的操作。需要注意的是,在使用過程中要特別注意JSON的語法規(guī)則和一些特殊的問題,例如:JSON字符串中不能存在單引號(hào),否則解析會(huì)出現(xiàn)問題。