【发布时间】:2016-06-27 13:24:39
【问题描述】:
我需要将 TextBox 中的日期从日期转换为纪元时间,以便将其插入 Oracle DB。
我设法从纪元转换为日期,如下所示,但找不到另一种方法。
SelectCommand="SELECT ID,
COMPANY,
FIRST_NAME,
LAST_NAME,
ID_NUMBER,
(SELECT TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')
+(TRAINING_DATE/60/60/24), 'MM/DD/YYYY') FROM dual) AS TRAINING_DATE,
(SELECT TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')
+(TRAINING_VALABILITY/60/60/24),'MM/DD/YYYY') FROM dual) AS TRAINING_VALABILITY
FROM CONTRACTORS
ORDER BY COMPANY"
【问题讨论】:
-
您确定要(或应该)在 Oracle 数据库中存储一个纪元时间吗?为什么不存储实际日期?让您的应用程序在需要时将其转换为纪元时间。
-
不要写
(SELECT TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')+(TRAINING_DATE/60/60/24), 'MM/DD/YYYY') FROM dual) AS TRAINING_DATE,简单写TO_CHAR(TO_DATE('01-JAN-1970','DD/MM/YYYY')+(TRAINING_DATE/60/60/24), 'MM/DD/YYYY') AS TRAINING_DATE -
注意您当地的时区。 Unix 纪元是 1970-01-01 00:00:00 UTC!
-
奇怪的是,尽管故意使用了错误的格式掩码,但您的作品代码! :
TO_DATE('01-JAN-1970','DD/MM/YYYY')。但是,编写文字日期的最简洁方式是 ANSI 格式:DATE '1970-01-01'。 -
您不能按原样添加 2个日期,但可以减去它们。