gpt4 book ai didi

php - SQL - 如何用其他日期时间替换日期时间值?

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

在我搞乱我的数据库之前,我有一个简单的问题:

用另一个日期时间值替换一个日期时间值的 SQL 命令是什么?我将用“0000-00-00 00:00:00”替换数据库表的单列中的所有日期时间。

我猜测 SQL 命令就像这个命令一样,用于替换单个列/表中的所有字符串值?:

UPDATE table_name SET field_id = '0000-00-00 00:00:00'

这是我第一次像这样替换所有日期时间值 - 是的,我已经做了数据库备份,以防万一!

最佳答案

反驳乔的答案。简而言之,全力以赴。另外,您不需要明确写出 00:00:00。

drop table if exists testdt;
create table testdt (dt datetime);
insert testdt select curdate();

update testdt set dt = '0000-00-00';

select * from testdt;

输出:

dt
-------------------
0000-00-00 00:00:00

注:http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

MySQL also permits you to store '0000-00-00' as a “dummy date” (if you are not using the NO_ZERO_DATE SQL mode). This is in some cases more convenient (and uses less data and index space) than using NULL values.

如果您使用 valid range 之外的日期从“1000-01-01”到“9999-12-31”,MySQL 以其全部智慧将让您存储它,甚至使用它!

drop table if exists testdt;
create table testdt (dt datetime);

insert testdt select curdate();
update testdt set dt = '0000-00-00';

insert testdt select '0010-01-01';
insert testdt select '1010-01-01';
insert testdt select '1000-00-00';
insert testdt select '0000-01-01';
select *, adddate(dt, interval 999 year) from testdt;

输出(月=日=0的无效日期不可用)

dt                    adddate(dt, interval 999 year)
0000-00-00 00:00:00 NULL
0010-01-01 00:00:00 1009-01-01 00:00:00
1010-01-01 00:00:00 2009-01-01 00:00:00
1000-00-00 00:00:00 NULL
0000-01-01 00:00:00 0999-01-01 00:00:00

关于php - SQL - 如何用其他日期时间替换日期时间值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960586/

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