[sql] Вопрос про даты
Ещё раз, и помедленнее.
вот есть дата
1989
December 1989
есть таблица
create table SomeT1(
DateFrom timestamp,
DateTo timestamp
);
вот надо придумать как сохранить в нее даты, чтобы
select CASE WHEN (DateFrom - DateTo) some clause1
when (DateFrom - DateTo) some clause2
as `date`
...
получал нормальный результат
Если сервак - ms sql смотри тип datetime и функции datediff && dateadd
неважно какой сервак. любая нормальная база делает плюс и минус. я прошу совета как хранить и на что проверять для достижения результата.
'1989' < 'December 1989'?
'1989' > 'December 1989'?
'1989' = 'December 1989'?
'1989' != 'December 1989'?
'1989' - 'December 1989'?
зы
в данном случае, дату можно хранить как:
DateTime + текстовое представление,
DateTime + набор флагов, которые показывают какое какая часть даты была задана,
DateTime + строка форматирования (которая выводит только нужные части даты)
single date DateTo = 2002-08-31
DateFrom = 2002-08-31
1987
(1)
October 1979
(2)
April - June 1980
(3)
1-5 April 2003
DateTo = 2002-04-5
DateFrom = 2002-04-1
вот интересует как хранить (1,2,3) и как проверть чтобы было универсально
и еще хотелось бы обойтись двумя полями.
DateTime + текстовое представление,
DateTime + набор флагов, которые показывают какое какая часть даты была задана,
DateTime + строка форматирования (которая выводит только нужные части даты)
просто база слишком огромная, каждое поле влияет на размер
база на postgres
ты не ответил на мой вопрос, а от него сильно зависит вариант решения.
Что у тебя, конкретно, не получается?
'1989' = '01 January' - '31 December 1989'
в твоем варианте
'1989' != 'December 1989'
чтобы например.
2000-01-01 - 2000-01-31
расценивалось в одном случае как 1-31 January 2000,
а в другом January 2000(без чисел)
иначе, никак.
на каждую дату по три бита одно поле с длиной в 6ть бит нормальное решение?
но конкретное решение надо уже смотреть на основе баланса:
удобства, скорости, объема в конкретной базе
таблица в которой это требуется около 200 - 300 тысяч записей
Оставить комментарий
laki
Есть даты:в базе есть два поля
DateFrom
и
DateTo
вот интересует такой вопрос,
как сохранять их что потом элементарными действияеми над датами +-
получать результат в квоте.
чето на ум ниче не приходит.