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

发布于 2024-10-17 03:33:35 字数 404 浏览 0 评论 0原文

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

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

This is a basic SQL datetime question, but I don't want to mess my database up!

For example, in a MySQL database, if I want to replace all datetime values between date X and date Y in a single column in one of my tables - what's the SQL command to do it? Example: I want to replace all datetime values in January of this month with a future date/time in March.

I know how to select a range of datetimes thanks to other StackOverflow questions - example:

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

But how to add the replace() function to this?

Thanks in advance for your help - I've made a database backup just in case!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

猫弦 2024-10-24 03:33:35

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

You don't need a function, a simple UPDATE statement does the trick. Here is some commented sample SQL code, if I understood your question correctly:

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
栩栩如生 2024-10-24 03:33:35

您可以使用 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'

You use an update query to update values in the table. This will filter out the records with the selected dates and put a new date in the field:

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'
谢绝鈎搭 2024-10-24 03:33:35
UPDATE table
SET DateTimeField = '2011-03-17'
WHERE DateTimeField >= '2011-01-01'
    and DateTimeField < '2011-02-01'

Between 包含在内,因此如果您想排除确切的结束日期,您应该使用 >= 和 <句法。

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

Between is inclusive, so if you want to exclude the exact end date you should use the >= and < syntax.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文