我使用oracle 11 G
我想更新我的表
但我的日期格式有问题
我的列类型是 timeStamp ,这是我的专栏中的日期示例: 11/12/05 16:08:00,000000000
这是我的java代码
String query = "UPDATE transfers SET date_closed_transfer = '" +
new Date() + "', date_arch = '" +
new Date() + "', date_archhj = '" +
dateArchHj + "',action_type = '2',status_transfer = '" + status +
"' WHERE id_transfer = '" + id + "'";
这是我的疑问:
UPDATE transfers
SET date_closed_transfer = to_date('Mon Mar 24 10:39:25 GMT 2014','dd/mm/yy')',
date_arch = to_date("Mon Mar 24 10:39:25 GMT 2014","dd/mm/yy")',
date_archhj = '1435/5/23',
action_type = '2',
status_transfer = 'AP'
WHERE id_transfer = 'TR-70'
但我有这个错误:
Caused by: java.sql.SQLException: ORA-01858: Caractère non numérique trouvé à la place d'un caractère numérique
已更新:
我尝试使用此查询:
UPDATE transfers SET date_arch = to_timestamp_tz('Tue Mar 25 09:29:14 GMT 2014','DY Mon DD HH24:MI:SS TZD YYYY'), date_archhj = '1435/5/24',action_type = '2',status_transfer = 'A' WHERE id_transfer = 'TR-78'
但我有这个错误:
Erreur SQL:ORA-01846:ce n'est pas in jour de semaine valide 01846. 00000 - “不是一周中的有效日期”
我也尝试:
UPDATE transfers SET date_closed_transfer = '25/03/2014', date_arch = '2014-03-25 09:59:47.123', date_archhj = '1435/5/24',action_type = '2',status_transfer = 'A' WHERE id_transfer = 'TR-61'
但我也有错误:
Erreur SQL:ORA-01843:ce n'st pas un mois valide 01843. 00000 - “不是有效月份”
这是日期的有效示例,应该在我的专栏
中31/03/02 00:00:00,000000000
答案 0 :(得分:1)
您在TO_DATE函数中提供的格式掩码需要与字符串匹配。另外,您可以使用TO_TIMESTAMP函数,因为您的列是TIMESTAMP数据类型。因此,它应该如下:
更新了查询
to_timestamp_tz('Mon Mar 24 10:39:25 GMT 2014','DY Mon DD HH24:MI:SS TZR YYYY')
参考文献: