Вопрос

В Oracle это возвращает 01.03.2010.Для меня это не имеет смысла.Кто-нибудь знает, почему?

SELECT TO_DATE( '2010' ,'yyyy' ) AS STRANGE_YEAR_RESULT
FROM DUAL

Я пробовал Oracle 10g и 11g.

Это было полезно?

Решение

Oracle необходимо полное значение DateTime в поле значения типа Date, поэтому требуется первый день текущий Я думаю, месяц, поскольку вам не требовалась никакой другой информации, кроме года.Помните, что вам всегда нужно выполнять преобразование дат TO_DATE() и TO_CHAR() в Oracle.Предполагая это, Oracle «знает», что вы получите необходимую информацию.

Другие советы

Я не думаю, что есть какая-то разумная причина, это просто «то, что оно делает».Это тоже обсуждалось на форумах ОТН около года назад.

Не знаю, но я предполагаю, что месяцы отсчитываются от нуля, поэтому январь = 0, март = 2 и т. д.

«10» может быть проблемой 2000 года, но интерпретируется как 2010 год.

А если день месяца не указан, возможно, предполагается первый день месяца.

Зачем это тестировать?Вы никогда не захотите кодировать таким образом.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top