MySQL 将 yyyy-mm-dd 计算为天
MySQL calculate yyyy-mm-dd to days
我目前有一列显示用户上次访问特定环境的时间,格式为 2015-01-26 15:35:45
- 我需要能够以某种方式计算/转换格式,以便确定用户在过去 45 天内访问过环境,使用 current_date
作为计算起始日期。
您可以使用 DATE_SUB
从当前日期减去 45 天并将其与您字段中的值进行比较,即
SELECT DATE_SUB(NOW(), INTERVAL 45 DAY)
在 2015-09-23 14:41:55
上执行时给出 2015-08-09 14:41:55
,因此您的查询变为
SELECT * FROM table_name
WHERE last_login_dt > DATE_SUB(NOW(), INTERVAL 45 DAY)
或
您可以使用 DATEDIFF
减去两个日期,这将 return 给定日期之间的天数差异
SELECT DATEDIFF(NOW(), '2015-09-01')
给出 21
即 2015-09-01 比当前日期早 21 天。所以你的查询应该看起来像
SELECT * FROM table_name
WHERE DATEDIFF(NOW(), last_login_dt) >= 45
假设您最后登录日期的字段名称是last_login_dt
,请根据需要更改
您可以使用 str_to_date
to convert the string to a date, and then use datediff
找到从那时到 NOW()
之间的天数:
SELECT *
FROM mytable
WHERE DATEDIFF(CURRENT_DATE, STR_TO_DATE(last_login, '%Y-%m-%d %H-%i-%s')) >= 45
我目前有一列显示用户上次访问特定环境的时间,格式为 2015-01-26 15:35:45
- 我需要能够以某种方式计算/转换格式,以便确定用户在过去 45 天内访问过环境,使用 current_date
作为计算起始日期。
您可以使用 DATE_SUB
从当前日期减去 45 天并将其与您字段中的值进行比较,即
SELECT DATE_SUB(NOW(), INTERVAL 45 DAY)
在 2015-09-23 14:41:55
上执行时给出 2015-08-09 14:41:55
,因此您的查询变为
SELECT * FROM table_name
WHERE last_login_dt > DATE_SUB(NOW(), INTERVAL 45 DAY)
或
您可以使用 DATEDIFF
减去两个日期,这将 return 给定日期之间的天数差异
SELECT DATEDIFF(NOW(), '2015-09-01')
给出 21
即 2015-09-01 比当前日期早 21 天。所以你的查询应该看起来像
SELECT * FROM table_name
WHERE DATEDIFF(NOW(), last_login_dt) >= 45
假设您最后登录日期的字段名称是last_login_dt
,请根据需要更改
您可以使用 str_to_date
to convert the string to a date, and then use datediff
找到从那时到 NOW()
之间的天数:
SELECT *
FROM mytable
WHERE DATEDIFF(CURRENT_DATE, STR_TO_DATE(last_login, '%Y-%m-%d %H-%i-%s')) >= 45