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

时间:2012-04-05 14:08:55

标签: mysql ms-access dateadd linked-tables

我在MS Access程序中链接了几十个MySQL表。还有十几个查询可以将这些表格集中起来并以人类方式提供数据,特别是将时间戳转换为mm / dd / yyyy格式。

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

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

这里发生了什么?

此致 亚历

2 个答案:

答案 0 :(得分:2)

查询中的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时间戳,请应​​用该转换以实现此目的。

答案 1 :(得分:0)

如果date_promised字段属于DATETIME类型,则可以使用 -

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

如果date_promised字段包含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;