我目前有一个列,显示用户上次访问特定环境的时间格式为2015-01-26 15:35:45
- 我需要能够以某种方式计算/转换格式,以便我可以确定用户是否有使用current_date
作为计算日期来访问过去45天内的环境。
答案 0 :(得分:5)
您可以使用DATE_SUB
从当前日期减去45天,并将其与您所在字段中的值进行比较,即
SELECT DATE_SUB(NOW(), INTERVAL 45 DAY)
在2015-08-09 14:41:55
上执行时会2015-09-23 14:41:55
,因此您的查询会变为
SELECT * FROM table_name
WHERE last_login_dt > DATE_SUB(NOW(), INTERVAL 45 DAY)
您可以使用DATEDIFF
减去两个日期,这将返回给定日期之间的天数差异
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
,请根据需要进行更改
答案 1 :(得分:2)
您可以使用str_to_date
将字符串转换为日期,然后使用datediff
查找当时与NOW()
之间的天数:
SELECT *
FROM mytable
WHERE DATEDIFF(CURRENT_DATE, STR_TO_DATE(last_login, '%Y-%m-%d %H-%i-%s')) >= 45