我试图进行查询,其中time()在date_start和date_end之间 我试过了:
date_start > CURRENT_TIMESTAMP AND date_end < CURRENT_TIMESTAMP
和
WHERE CURRENT_TIMESTAMP BETWEEN date_start AND date_end
仍然没有为我锻炼。尝试了CURRENT_TIMESTAMP()。
Mysql的
id item_id percentage rabatcode date_start date_end
9 6 50 XXY-GGS-82 1323817200 1324422000
答案 0 :(得分:2)
通过NOW()
比较FROM_UNIXTIME()
与值:
WHERE NOW() BETWEEN FROM_UNIXTIME(date_start) AND FROM_UNIXTIME(date_end)
理想情况下,如果您可以修改数据库结构,那么将日期存储为MySQL的本地DATETIME
类型通常要好得多,因为MySQL的日期处理功能可以使用日期类型而不需要转换。
答案 1 :(得分:2)
您在问题的标题中提到要检查当前时间是否在UNIX时间戳之间,因此您需要使用UNIX_TIMESTAMP()
函数:
WHERE UNIX_TIMESTAMP() BETWEEN date_start AND date_end
NOW()
会返回一个字符串(来自手册:'2007-12-15 23:50:26'
),因此无法满足您的需求。
答案 2 :(得分:-1)
问题是你不能两次使用CURRENT_TIMESTAMP
。您应该考虑将日期转换为其他格式,并将其与NOW()
进行比较(如果它们已经无法与NOW()
进行比较。