如何解决01810。00000-“格式代码出现两次”

时间:2018-08-08 09:54:19

标签: sql oracle

我是sql的新手。我试图获取两个日期之间的记录。但我收到ORA-01810错误

查询:

SELECT txnid as txnid,
       to_date(txn_date,'YYYY-MM-DD HH24:MI:SS') as txn_date, 
       amount as amount 
  FROM transactionsdata ct 
 where ct.txn_date >= TO_TIMESTAMP('2018-07-01 00:00:00','yyyy-MM-dd HH:mm:ss') 
   and ct.txn_date <= TO_TIMESTAMP('2018-07-27 00:00:00','yyyy-MM-dd HH:mm:ss');

我的代码有什么问题?

这是我的表格日期格式:11-07-18 01:05:17.395000000 PM

2 个答案:

答案 0 :(得分:4)

尝试使用此代码:

SELECT txnid as txnid,
       to_char(txn_date,'YYYY-MM-DD HH24:MI:SS') as txn_date, 
       amount as amount 
  FROM transactionsdata ct 
   and ct.txn_date >= TO_TIMESTAMP('2018-07-01 00:00:00','yyyy-MM-dd HH24:mi:ss') 
   and ct.txn_date <= TO_TIMESTAMP('2018-07-27 00:00:00','yyyy-MM-dd HH24:mi:ss')

要代表分钟,您必须使用 mi 。您在代码的第2行中使用了它,没多久。

答案 1 :(得分:0)

根据您的描述,您似乎想要:

SELECT txnid as txnid,
       to_date(txn_date, 'DD-MM-YY HH:MI:SS.FF9 AM') as txn_date, 
       amount as amount 
FROM transactionsdata ct 
WHERE ct.txn_date >= DATE '2018-07-01' AND 
      ct.txn_date <= DATE '2018-07-27'