我正在使用oracle 12c,但是执行查询时,我会得到
literal does not match format string
下面是我的查询:
INSERT INTO customers
(customer_id, ciams_uid, title, fname, lname, email,
dob, store_num, store_name, mobilephone, is_medical_card,
scheme_number, status_code, create_date_time, last_update_time,
is_locked, ciams_token, store_phone)
VALUES
(1, '5', 'test', 'test', 'test', 'test@gmail.com',
'2014-07-07', '5555555', 'test', '7845125487', 0,
4555, 'klkl', '2014-07-01', '2014-07-07',
0, 'dsdssd', '46464646');
我要插入值。
答案 0 :(得分:2)
似乎您需要格式化日期值
例如date'2014-07-07'
或to_date('2014-07-07','yyyy-mm-dd')
答案 1 :(得分:1)
您在需要DATE
数据类型的地方提供字符串。
Oracle看到了这种情况,并尝试将字符串'2014-07-07'强制转换为DATE
数据类型。
使用您当前的NLS_DATE_FORMAT
设置隐式完成此操作。
the documentation的Oracle文档
您不应该依赖NLS_DATE_FORMAT
的设置来进行隐式日期转换。
相反,显式包括DATE
文字,TIMESTAMP
文字或TO_DATE
函数调用。
NLS_DATE_FORMAT的Oracle文档
示例:
SELECT DATE'2014-07-07' FROM DUAL;
SELECT TIMESTAMP'2014-07-07 00:00:00' FROM DUAL;
SELECT TO_DATE('2014-07-07','YYYY-MM-DD') FROM DUAL;