在连接日期和时间时未绑定变量49

时间:2015-05-25 17:45:31

标签: sql oracle

我试图将日期与时间联系起来,将它们转换为时间戳,但我收到了错误。

SELECT to_timestamp(to_char(22-05-2015) ||" "|| to_char(21:49:00 1600),
       'DD-MM-YYYY HH24:MI:SS FF9')  FROM DUAL;

1 个答案:

答案 0 :(得分:1)

to_char函数将另一种数据类型(数字,日期)中的值转换为字符串。你没有约会,你有一个你没有正确引用的字符串;时间部分中的冒号导致绑定变量错误,因为它也没有引用。双引号用于标识符,而不是字符串,用单引号括起来。无论如何,你真的不需要将两个硬编码字符串连接在一起。

所以你可以这样做:

SELECT to_timestamp('22-05-2015 21:49:00 1600', 'DD-MM-YYYY HH24:MI:SS FF4')
FROM DUAL;

虽然使用小数点而不是秒和毫秒之间的空格会更常见。

或者由于您将所有数据作为固定值提供,因此可以使用ISO格式的时间戳文字:

SELECT TIMESTAMP '2015-05-22 21:49:00.16' FROM DUAL;