如何写入查询以获取特定日期和日期范围

时间:2018-01-18 07:01:38

标签: sql oracle

audit_modifier是VARCHAR2(30 CHAR),audit_modifier值以这种格式存储[2018-01-18T17:19:47.285Z]。

然后如何写入查询以获取特定日期和日期范围。

SELECT * FROM TABLE其中audit_modifier ='2018-01-18';

收到以下错误消息。

选择* 来自TABLE WHERE trunc(audit_modifier)在TO_DATE('2018-01-16','YYYY-MM-DD')之间                              TO_DATE('2018-01-16','YYYY-MM-DD');

ORA-00932:数据类型不一致:预期NUMBER为DATE 00932. 00000 - “不一致的数据类型:预期%s获得%s” *原因:
*行动: 行错误:10列:29

1 个答案:

答案 0 :(得分:0)

此答案假定您将时间戳信息以下列格式存储为文本:

2018-01-18T03:22:48.317Z

您应该将日期信息存储在日期列中,但我们可以解决此问题。我们可以使用TO_TIMESTAMP将此字符串转换为时间戳,然后将其截断为日期:

SELECT *
FROM TABLE
WHERE TRUNC(TO_TIMESTAMP('2018-01-18T03:22:48.317Z',
                         'YYYY-MM-DDTHH24:MI:SS.FFFZ')) =
    TO_DATE('2018-01-18', 'YYYY-MM-DD')