SQL - 如何用单个未来的日期时间替换一系列日期时间?

时间:2011-02-13 20:01:28

标签: sql mysql datetime replace sqlcommand

这是一个基本的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()函数添加到此?

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

3 个答案:

答案 0 :(得分:5)

你不需要一个函数,一个简单的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

答案 1 :(得分: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'

答案 2 :(得分:1)

UPDATE table
SET DateTimeField = '2011-03-17'
WHERE DateTimeField >= '2011-01-01'
    and DateTimeField < '2011-02-01'

介于两者之间,因此如果您要排除确切的结束日期,则应使用&gt; =和&lt;语法。