Sql 存储为数字的Oracle日期
我知道有很多日期转换线程,但我还没有看到这一个 我正在使用OracleSQLDeveloper提取一个时间戳字段,该字段已存储为一个数字 它当前的存储方式如下:20131203164906。我需要像这样导出它2013年3月12日0:00 这是我目前为止所做的,但我尝试过的组合似乎都不起作用。我问之前已经试过了Sql 存储为数字的Oracle日期,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我知道有很多日期转换线程,但我还没有看到这一个 我正在使用OracleSQLDeveloper提取一个时间戳字段,该字段已存储为一个数字 它当前的存储方式如下:20131203164906。我需要像这样导出它2013年3月12日0:00 这是我目前为止所做的,但我尝试过的组合似乎都不起作用。我问之前已经试过了 SELECT TO_CHAR(TO_DATE(TABLE.timestamp,'dd-mm-rr'), 'mm/dd/yyyy hh24:mi:ss') From XXXX.TABLE W
SELECT
TO_CHAR(TO_DATE(TABLE.timestamp,'dd-mm-rr'), 'mm/dd/yyyy hh24:mi:ss')
From XXXX.TABLE
WHERE ROWNUM < 10;
是的,我知道oracle日期时间不应该存储为字符串/数字。任何帮助都会很好。谢谢。截止日期的格式掩码与您声明的格式不匹配 试试这个:
SELECT
TO_CHAR(TO_DATE(TABLE.timestamp,'YYYYMMDDHH24MISS'), 'mm/dd/yyyy hh24:mi')
From XXXX.TABLE
WHERE ROWNUM < 10;
截止日期的格式掩码与声明的格式不匹配 试试这个:
SELECT
TO_CHAR(TO_DATE(TABLE.timestamp,'YYYYMMDDHH24MISS'), 'mm/dd/yyyy hh24:mi')
From XXXX.TABLE
WHERE ROWNUM < 10;
太棒了,但我还有一条皱纹。如果我有一些空值呢?我可以把NVL放在哪里?或者我应该使用它吗?嗯,只有当您有一个默认值要替换时,NVL才有意义。你有这样一个值吗?如果你的timestamp列有一个NULL,那么整个表达式的结果也将是NULL,这对你来说可能是个问题,也可能不是。这太棒了,但我还有一个问题。如果我有一些空值呢?我可以把NVL放在哪里?或者我应该使用它吗?嗯,只有当您有一个默认值要替换时,NVL才有意义。你有这样的值吗?如果你的timestamp列有一个NULL,那么整个表达式的结果也将是NULL,这对你来说可能是个问题,也可能不是。