Поэтому мне нужно добавить метку времени в набор результатов, если запись попадает в это условие.
Пример:
Используя сегодняшнюю дату «07-06-2011» для сравнения с датой и временем, мне нужно добавить метку времени в набор результатов, если запись попадает между метками времени 10 марта и 11 апреля 2011 года
Используя временную метку «08-01-2011» для сравнения с датой, мне нужно добавить временную метку к набору результатов, если запись попадает между 10 апреля и 11 мая 2011 года
и так далее ...
Возникли проблемы с синтаксисом и как рассчитать конкретные даты, какие-либо идеи?
Пример данных, запущенных для даты: "07-06-2011"
- любая дата июля должна работать, но 10 марта 2011 г. и 11 апреля 2011 г. должны оставаться неизменными до августа. Тогда это должны быть следующие два одновременных месяца
.
date_feild new_date_feild
------------ --------------
"03-09-2011"
"03-15-2011" "07-06-2011"
"04-10-2011" "07-06-2011"
"04-15-2011
Псевдо-запрос:
SELECT date_feild, CASE
WHEN date_field BETWEEN (three months ago on the 10th) AND (two months ago on the 11th)
THEN NOW() AS new_date_feild
END
FROM tbl_name
WHERE other_conditions
Наверное, я хотел бы знать, как получить эти даты в этом формате:
- три месяца назад 10
- два месяца назад 11
UPDATE:
Ну, я придумал этот беспорядок запроса, может кто-нибудь еще помочь с этим?
SELECT TO_DATE(
TEXTCAT(
TEXTCAT(
TEXTCAT(
date_part('YEARS', CURRENT_DATE - INTERVAL '3 MONTHS'),
'-'),
date_part('MONTHS', CURRENT_DATE - INTERVAL '3 MONTHS')),
'-10'),'YYYY-MM-DD') AS previous_date,
TO_DATE(
TEXTCAT(
TEXTCAT(
TEXTCAT(
date_part('YEARS', CURRENT_DATE - INTERVAL '3 MONTHS'),
'-'),
date_part('MONTHS', CURRENT_DATE - INTERVAL '3 MONTHS')),
'-10'),'YYYY-MM-DD') + INTERVAL '1 MONTH' + INTERVAL '1 DAY' AS next_previous_date