在MS Access中将时间戳转换为人类可读



我在MS Access程序中链接了几十个MySQL表。还有十几个查询将这些表拉到一起,并以人工方式提供数据,尤其是将时间戳转换为mm/dd/yyyy格式。

我已经测试了时间戳http://www.unixtimestamp.com/index.php)但下面的代码产生了日期:4/25/2012,这是不正确的,应该是4/24/2012

SELECT date_promised, DateAdd('s', 1335312000, #1/1/1970#) AS date_promised2 FROM erp_workorder AS t1 WHERE id_primary = 73135;

这是怎么回事?

谨致问候,Alex

查询中的DateAdd()表达式要求将Unix时间戳的日期/时间等效为UTC时间。

? DateAdd("s", 1335312000, #1/1/1970#)
4/25/2012 

展开格式以显式显示时间。

? Format(DateAdd("s", 1335312000, #1/1/1970#), "yyyy-mm-dd hh:nn:ss")
2012-04-25 00:00:00

当你把时间戳插入网页上的框中,然后点击"转换"按钮,它会给你这个值:

04 / 24 / 12 @ 7:00:00pm EST

正在使用早期的格式。。。

2012-04-24 19:00:00

现在比较一下同一时刻的这两种不同表示。

2012-04-25 00:00:00 (UTC)
2012-04-24 19:00:00 (EST)

如果您希望查询显示任何时区的带有偏移量的UNIX时间戳,请应用该转换。

如果date_procised字段是DATETIME类型,则可以使用-

SELECT date_promised, DATE_FORMAT(date_promised, '%m/%d/%Y') AS date_promised2
FROM erp_workorder AS t1
WHERE id_primary = 73135;

如果date_procised字段包含unix时间戳,则可以使用-

SELECT date_promised, DATE_FORMAT(FROM_UNIXTIME(date_promised), '%m/%d/%Y') AS date_promised2
FROM erp_workorder AS t1
WHERE id_primary = 73135;

相关内容

  • 没有找到相关文章

最新更新