2

这是一个基本的 SQL 日期时间问题,但我不想弄乱我的数据库!

例如,在 MySQL 数据库中,如果我想在我的一个表的单个列中替换日期 X 和日期 Y 之间的所有日期时间值 - 执行此操作的 SQL 命令是什么?示例:我想将本月 1 月的所有日期时间值替换为 3 月的未来日期/时间。

由于其他 StackOverflow 问题,我知道如何选择一系列日期时间 - 例如:

select * from table where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'

但是如何添加 replace() 函数呢?

提前感谢您的帮助 - 我已经备份了数据库以防万一!

4

3 回答 3

6

您不需要函数,一个简单的 UPDATE 语句就可以了。如果我正确理解了您的问题,这里是一些带注释的示例 SQL 代码:

UPDATE Table -- Put in your table name
  SET DateTimeField='31/03/2011 10:30:00.000' -- Change to replacement date/time
  WHERE DatetimeField BETWEEN -- This is the time range to replace, 
    '22/02/2009 09:00:00.000' AND '23/05/2009 10:30:00.000' -- inclusive
于 2011-02-13T20:06:21.677 回答
1

您使用update查询来更新表中的值。这将过滤掉具有选定日期的记录并在字段中放置一个新日期:

update table
set DatetimeField = '01/03/2009 09:00:00.000'
where DatetimeField between '22/02/2009 09:00:00.000' and '23/05/2009 10:30:00.000'
于 2011-02-13T20:08:09.957 回答
1
UPDATE table
SET DateTimeField = '2011-03-17'
WHERE DateTimeField >= '2011-01-01'
    and DateTimeField < '2011-02-01'

之间是包容性的,所以如果你想排除确切的结束日期,你应该使用 >= 和 < 语法。

于 2011-02-13T20:09:50.880 回答