【问题标题】:Converting from normal date to unix epoch date in MS Access SQL query在 MS Access SQL 查询中从普通日期转换为 unix 纪元日期
【发布时间】:2011-05-20 13:57:06
【问题描述】:

我正在尝试为 MS Access 2007 通过 ODBC 连接到 MySQL 数据库编写查询。一切正常,查询完成了我想要它做的事情。我挂断的部分是我一直在向用户询问 unix 纪元时间,而不是常规日期。

我查找了一堆有关 MS Access 的参考资料,虽然我可以在 SQL 调用中使用许多日期转换函数,但我找不到任何可以用来从正常日期转换的函数 -> unix 纪元日期。

我想要并且我认为这可行,是以一种更友好的方式(人类可读的日期)向用户询问日期,然后将其转换为 unix 纪元日期。现在我考虑了一下,我想我的另一个选择是在使用 SQL 查询提取它们之后转换数据库中的 unix 纪元日期,但如果可能的话,我宁愿转换用户的输入,因为这样的输入更少输入,这样我就不必做那么多工作了。

SELECT TOP 5 Count( * ) AS [Number of visits by language], login.lang AS [Language]
FROM login, reservations, reservation_users
WHERE (reservations.start_date Between [Starting unix epoch time] And [Ending unix epoch time]) And reservations.is_blackout=0 And reservation_users.memberid=login.memberid And reservation_users.resid=reservations.resid And reservation_users.invited=0
GROUP BY login.lang
ORDER BY Count( * ) DESC;

【问题讨论】:

    标签: sql time odbc ms-access-2007 epoch


    【解决方案1】:

    不知道这是否可行(无权确认),但请尝试此处的建议:

    使用哪个:

        DATEDIFF(second, '1 Jan 1970', tbl.LastChangeDate)
    

    这是来自一些cmets。

    编辑:请参阅 Remou 的评论。

    【讨论】:

    • 我认为你的意思是 DateDiff("s", "01/01/1970 00:00:00", time_field) -- epochconverter.com
    • 完美。多谢你们!我找到了这个功能,但没想到按规定的方式使用它。
    【解决方案2】:

    使用 MS 2010 我发现这个工作: DateAdd("s",([epoch timestamp]-21600),#1/1/1970#)

    http://www.pcreview.co.uk/forums/convert-epoch-date-t2324318.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-12
      • 2019-08-21
      • 1970-01-01
      • 2012-11-07
      • 2015-07-13
      • 1970-01-01
      相关资源
      最近更新 更多