首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证MySQL查询的失效日期

如何验证MySQL查询的失效日期
EN

Stack Overflow用户
提问于 2010-06-24 00:22:29
回答 2查看 15.4K关注 0票数 9

这是我当前的mysql表

代码语言:javascript
复制
id  | file        |  expiry_date
---------------------------------------
1   | sample.zip  |  2010-02-03 11:07:03
2   | sample2.zip |  2010-07-13 11:07:03

查询:

代码语言:javascript
复制
SELECT * 
  FROM download 
 WHERE expiry_date` `how to validate here`

我想验证expiry_date是否过期,文件无法下载。

如何做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-24 00:24:05

代码语言:javascript
复制
SELECT * FROM download WHERE expiry_date > CURRENT_TIMESTAMP

代码语言:javascript
复制
SELECT * FROM download WHERE expiry_date > NOW()
票数 13
EN

Stack Overflow用户

发布于 2010-06-24 00:34:36

您需要考虑的一个问题是expiry_date存储在哪个时区,而不是mysql服务器的时区。我已经使用了如下解决方案:

代码语言:javascript
复制
SELECT * FROM `download` WHERE `expiry_date` > NOW();

然而,这个解决方案并没有给出我想要的正确答案,因为NOW()函数被本地化到mysql服务器的时区。除非您的expiry_dates使用NOW()进入已经本地化到您的服务器的服务器,否则您将得到一个不正确的比较。

在我们的所有系统中,我们都使用UTC在数据库中存储时间戳。不幸的是,我们托管的数据中心需要将服务器本地化到EST,这可能会扰乱我们所有的比较。解决方案是使用UTC_TIMESTAMP()函数,该函数返回未本地化的UTC日期和时间。

代码语言:javascript
复制
SELECT * FROM `download` WHERE `expiry_date` > UTC_TIMESTAMP();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3103501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档