gpt4 book ai didi

mysql - 如何仅在 MySQL 中将日期时间时区格式更改/转换为日期格式

转载 作者:行者123 更新时间:2023-11-29 09:25:00 25 4
gpt4 key购买 nike

在我的一个表中,它有一列日期,并且由于时区格式而保存 VARCHAR2019-12-30 00:00:01 +0800 。有没有办法将其更改/转换为仅日期格式并创建日期范围的查询?我在将其转换为仅日期时遇到困难。我尝试在 php 中更改日期,但我想知道如何在 SQL 中转换它,因为我需要查询日期范围。预先感谢您的帮助。

我遇到错误函数 str_to_date 的日期时间值不正确:'2020-01-14 00:00:01 +0800'

我尝试的是

(STR_TO_DATE(placed_date, "%Y/%m/%d") between DATE_ADD(DATE_ADD(LAST_DAY("2020-01-14"), INTERVAL 1 DAY), INTERVAL - 1 MONTH) AND LAST_DAY("2020-01-14") )

最佳答案

你可以试试

SELECT STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x")   FROM table1
WHERE STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x") between DATE_ADD(
DATE_ADD(LAST_DAY("2020-01-14"), INTERVAL 1 DAY), INTERVAL - 1 MONTH)
AND LAST_DAY("2020-01-14") ;

参见示例

select version();
| version() || :-------- || 8.0.19    |
CREATE TABLE table1
(`placed_date` varchar(30))
;

INSERT INTO table1
(`placed_date`)
VALUES
("2019-12-30 00:00:01 +0800"),
("2019-12-29 00:00:01 +0800"),
("2019-12-28 00:00:01 +0800"),
("2019-12-27 00:00:01 +0800"),
("2020-01-02 00:00:01 +0800")
✓✓
SELECT STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x")    FROM table1
WHERE STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x") between DATE_ADD(
DATE_ADD(LAST_DAY("2020-01-14"), INTERVAL 1 DAY), INTERVAL - 1 MONTH)
AND LAST_DAY("2020-01-14") ;
| STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x") || :------------------------------------------------------ || 2020-01-02 00:00:01                                     |
UPDATE  table1 SET placed_date =  DATE_FORMAT(STR_TO_DATE(placed_date, "%Y-%m-%d %H:%i:%s +%x%x%x%x"), "%Y-%m-%d");
ALTER TABLE table1 MODIFY placed_date DATE;
SELECT * FROM table1;
| placed_date || :---------- || 2019-12-30  || 2019-12-29  || 2019-12-28  || 2019-12-27  || 2020-01-02  |

db<> fiddle here

关于mysql - 如何仅在 MySQL 中将日期时间时区格式更改/转换为日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59761279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com