如何在SQL中实现日期字段与当前日期的减法运算?
数据库日期字段与当前日期的减法运算方法
不同数据库的日期运算语法略有差异,以下是主流数据库的实现方式:
MySQL
使用DATEDIFF()函数计算两个日期的天数差,当前日期可通过CURDATE()获取(仅日期部分):
SELECT DATEDIFF(CURDATE(), your_date_column) AS day_difference FROM your_table;
如果字段是datetime类型,想忽略时间部分,可先转成日期:
SELECT DATEDIFF(CURDATE(), DATE(your_date_column)) AS day_difference FROM your_table;
注:DATEDIFF()的参数顺序是结束日期在前,开始日期在后。
PostgreSQL
直接对日期做减法即可得到天数差,或用AGE()函数获取更详细的时间间隔:
-- 获取天数差 SELECT CURRENT_DATE - your_date_column AS day_difference FROM your_table; -- 获取包含年/月/日的完整间隔 SELECT AGE(CURRENT_DATE, your_date_column) AS date_interval FROM your_table;
SQL Server
使用DATEDIFF()函数,需指定间隔单位(如day表示天数),当前日期用GETDATE()或CURRENT_DATE:
SELECT DATEDIFF(day, your_date_column, GETDATE()) AS day_difference FROM your_table;
若需忽略时间部分,可将字段和当前日期转成日期类型:
SELECT DATEDIFF(day, CAST(your_date_column AS DATE), CAST(GETDATE() AS DATE)) AS day_difference FROM your_table;
内容的提问来源于stack exchange,提问作者userfh
相关产品推荐
相关产品推荐

