我从sql收集了一些细节,它显示了生日如下(每行代表不同的生日):
-294022800
649119600
-138675600
49158000
32396400
631152000
-2147483648
731894400
-408067200
522025200
我试图使用以下公式在excel中更改它们:
=DATE(INT(A1/10000),INT((A1-10000*INT(A1/10000))/100),A1-(100*INT(A1/100)))
但它不能很好地工作,它必须采用不同的格式。你知道它是什么样的格式以及如何在excel中将它转换为日期?为什么有些数字是否定的? 这可以是EPOCH格式吗?如何在excel中将其更改为正常的人类日期?
答案 0 :(得分:4)
我的猜测是它们是unix时间戳http://en.wikipedia.org/wiki/Unix_time
在excel中,您可以使用以下内容:
=(((A1/60)/60)/24)+DATE(1970,1,1)
尽管如此,您必须注意您的日期时间似乎包含夏令时抵消。 (其中一些是一天的倍数(24 * 60 * 60),但其他的则是一小时)。我不知道为什么你有一个非小时数(-2147483648),可能是原系统的一些怪癖。
来源:http://spreadsheetpage.com/index.php/tip/converting_unix_timestamps/
答案 1 :(得分:2)
可以使用此公式
转换Unix时间戳 =A1/86400+DATE(1970,1,1)
Unix时间戳是自1970年1月1日以来的秒数,因此在此之前的生日将为负数。 [其中一个生日转换为1901年 - 是吗?如果任何日期在1900年之前,您将遇到问题,因为Excel无法识别这些日期]
答案 2 :(得分:0)
=(A1-(4*3600))/86400+25569