Date 2 Integer
Date 2 Integer
Привет Всем! Есть какой способ сделать преобразование Date->Integer?
P/S/ Придумал пока 2-а способа: UDF, SQL: Количество дней * 24.
Есть еще варианты?
P/S/ Придумал пока 2-а способа: UDF, SQL: Количество дней * 24.
Есть еще варианты?
Re: Date 2 Integer
а в чем глубокий смысл?avenger писал(а):Привет Всем! Есть какой способ сделать преобразование Date->Integer?
P/S/ Придумал пока 2-а способа: UDF, SQL: Количество дней * 24.
Есть еще варианты?
Re: Date 2 Integer
Есть подозрение, чтоstix-s писал(а):а в чем глубокий смысл?
Код: Выделить всё
SELECT CAST(CAST('2007-09-20' AS DATE) AS VARCHAR(10)) FROM RDB$DATABASE
Хочется репликацию не родного мне проекта усовершенствовать. Там в качестве ключевых полей используется тип Date.
Re: Date 2 Integer
Вообще-то формат отображаемой даты ИМХО в региональных настройках, а не в сервере зашит.avenger писал(а):Есть подозрение, чтоstix-s писал(а):а в чем глубокий смысл?на разных серверах выглядет по разному. Например 2007-09-20 или 20-SEP-200. А Integer выглядет везде одинаково.Код: Выделить всё
SELECT CAST(CAST('2007-09-20' AS DATE) AS VARCHAR(10)) FROM RDB$DATABASE
Хочется репликацию не родного мне проекта усовершенствовать. Там в качестве ключевых полей используется тип Date.
Re: Date 2 Integer
У него - варчар.stix-s писал(а):Вообще-то формат отображаемой даты ИМХО в региональных настройках, а не в сервере зашит.avenger писал(а):Есть подозрение, чтоstix-s писал(а):а в чем глубокий смысл?на разных серверах выглядет по разному. Например 2007-09-20 или 20-SEP-200. А Integer выглядет везде одинаково.Код: Выделить всё
SELECT CAST(CAST('2007-09-20' AS DATE) AS VARCHAR(10)) FROM RDB$DATABASE
Хочется репликацию не родного мне проекта усовершенствовать. Там в качестве ключевых полей используется тип Date.
См. диалекты
Re: Date 2 Integer
И толку, в одном месте так в другом так. Может есть простой способ сделать так cast(date as integer)?hvlad писал(а):У него - варчар. См. диалекты
Re: Date 2 Integer
Это ты мне про толк рассказываешь ? У тебя одна БД в 1-ом диалекте, а другая - в 3-ем - "и толку" ? Пореплицируй их, ага, особенно bigint'ыavenger писал(а):И толку, в одном месте так в другом так.hvlad писал(а):У него - варчар. См. диалекты
Есть. Но я не скажу. Т.к. оно тебе не надо для озвученной задачиavenger писал(а):Может есть простой способ сделать так cast(date as integer)?
Re: Date 2 Integer
Обе базы в 3-ем диалекте, версии разные fb2 и fb1.5hvlad писал(а): Это ты мне про толк рассказываешь ? У тебя одна БД в 1-ом диалекте, а другая - в 3-ем - "и толку" ? Пореплицируй их, ага, особенно bigint'ы
Почему не скажешь?
Re: Date 2 Integer
Нет, не в 3-ем.avenger писал(а):Обе базы в 3-ем диалекте, версии разные fb2 и fb1.5
См. вышеavenger писал(а):Почему не скажешь?
PS Сегодня развлечение на sql.ru, не нужно тут тоже цирк устраивать
Помнится, на скруле был спор по поводу точки отсчёта, что именно считать "нулём".
Вот это действительно на каждом сервере и программе - кто в лес, кто по дрова. И нифига int не будет универсальным поэтому.
А дата - она и есть дата. Форматируй UDF-кой, если унификацию хочешь в строке. А лучше клиент пусть процессор морщит, как тебе её показать.
Вот это действительно на каждом сервере и программе - кто в лес, кто по дрова. И нифига int не будет универсальным поэтому.
А дата - она и есть дата. Форматируй UDF-кой, если унификацию хочешь в строке. А лучше клиент пусть процессор морщит, как тебе её показать.
-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Ну, если вопрос совместимости, можно хранить разницу между жёстко заданной датой (01.01.1900 00:00:00) скажем и нужной датой... Хоть в миллисекундахWildSery писал(а):Помнится, на скруле был спор по поводу точки отсчёта, что именно считать "нулём".
Вот это действительно на каждом сервере и программе - кто в лес, кто по дрова. И нифига int не будет универсальным поэтому.
А дата - она и есть дата. Форматируй UDF-кой, если унификацию хочешь в строке. А лучше клиент пусть процессор морщит, как тебе её показать.

-
- Сообщения: 250
- Зарегистрирован: 25 июл 2007, 21:33
Тем более, что дата представлена целой частью Float значения а время - дробной, поэтому и с разницей работать просто. У меня есть кусок где просто тупо считается (Date2-Date1)*24*60*60 (это я развернул для лучшего пониманияavenger писал(а):Ну да, наверно проще всего преобразовать дату в integer - это найти РАЗНОСТЬ между данной датой и точкой отсчёта.
Типа Trunc(Date) = Date_Current - '1899-12-30'.
