You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

当WHERE条件含日期类型时,如何编写SQL数据更新语句?

处理UPDATE语句中日期类型字段的WHERE条件

不同数据库对日期格式的处理略有差异,以下是几种常用数据库的写法示例:

MySQL/MariaDB

直接使用标准YYYY-MM-DD格式字符串匹配,或者用STR_TO_DATE转换非标准格式:

-- 标准日期格式匹配
UPDATE blse
   SET employment = 2066.3
 WHERE date = '2023-10-01'
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

-- 非标准格式转换(例如MM/DD/YYYY)
UPDATE blse
   SET employment = 2066.3
 WHERE date = STR_TO_DATE('10/01/2023', '%m/%d/%Y')
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

PostgreSQL

支持标准日期字符串,或用TO_DATE转换非标准格式:

-- 标准日期格式匹配
UPDATE blse
   SET employment = 2066.3
 WHERE date = '2023-10-01'
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

-- 非标准格式转换
UPDATE blse
   SET employment = 2066.3
 WHERE date = TO_DATE('10/01/2023', 'MM/DD/YYYY')
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

SQL Server

使用标准日期字符串,或用CONVERT函数转换格式:

-- 标准日期格式匹配
UPDATE blse
   SET employment = 2066.3
 WHERE date = '2023-10-01'
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

-- 非标准格式转换(101对应MM/DD/YYYY格式)
UPDATE blse
   SET employment = 2066.3
 WHERE date = CONVERT(DATE, '10/01/2023', 101)
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

额外技巧

如果只需匹配年份、月份等部分日期信息,可以用数据库内置的日期提取函数:

-- MySQL示例:匹配2023年10月的数据
UPDATE blse
   SET employment = 2066.3
 WHERE YEAR(date) = 2023 AND MONTH(date) = 10
   AND industry = 'Total Nonfarm'
   AND state = 'Alabama';

内容的提问来源于stack exchange,提问作者RAKANiD6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:05:31