这是一个基本的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()函数添加到此?
提前感谢您的帮助 - 我已经进行了数据库备份以防万一!
答案 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;语法。