Я отливаю строки мм / дд / гг в даты в красном смещении, используя CAST AS DATE CAST(birth_str AS DATE) AS birth_date
. Преобразование обрабатывает компоненты правильно, но год конвертируется в будущие времена всякий раз, когда он опускается ниже 1970 года. Например:
birth_str birth_date
07/19/84 1984-07-19
02/07/66 2066-02-07
06/24/84 1984-06-24
01/31/64 2064-01-31
12/08/62 2062-12-08
02/21/36 2036-02-21
02/19/37 2037-02-19
07/01/74 1974-07-01
08/25/50 2050-08-25
08/31/39 2039-08-31
Есть ли лучшая практика, чтобы даты не попадали в будущее?
Нет ли аргументов для этого в актерском составе? (Я искал повсюду, но ничего не нахожу.) В противном случае, я предполагаю, что лучший путь вперед - это тестирование на дату приведения в будущем, а затем просто делать струнные операции над негодяями, прежде чем перевести их в разумные сроки.
В основном:
- если не будущий день: отлично.
- если будущая дата:
- очистить все компоненты даты
- шлепнуть 19 на yy
- склеить все вместе
- В ролях.
Это так хорошо, как это получается? (Я был немного удивлен, что не смог найти никого, кто придумал лучший способ обойти эту проблему).