|
|
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
перевожу базу данных с MsSql на Firebird непонятно одна странность почему не работает запрос типа select case when dataWork=0 then '' else cast(EXTRACT(DAY FROM dataWork) as varchar(2))||'.'||cast(EXTRACT(MONTH FROM dataWork) as varchar(2))||'.'||cast(EXTRACT(YEAR FROM dataWork) as varchar(4)) end as strdataWork from .... говорит что не может 0 перевести в строку. и вообще у меня какие-то проблеммы с датой. Ведь она надеюсь храниться как float? так почему нельзя писать select *from ... where DataLoad=0 если переконвертить в строку тип dd.mm.yyyy то понимает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:20 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Пиши Код: plaintext и будет тебе руль... ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:22 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Блин, прошу прощения. не CASE а CAST ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:23 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
нету мне руля :) Overflow occurred during data type conversion error from string '12-DEC-2003' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:37 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
case when dataWork=0 then '' else ... Может быть, when dataWork is NULL? а то как-то странно получается, 0 - тоже вполне реальная дата ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:42 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
у меня поля в базе not null я знаю что реальная. но в данном случае служебная :) те если 0 - то и нет нечего - я понимаю что может это не совсем верно - но вообшем приемлеммо почему не работает select *from ... where DataLoad=3432 не работает в ibExpert и в приложение delphi предлагает конвертнуть в строку :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:54 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
2 Katy А datawork у тебя часом не строка? :) Тогда рекомендую cast(cast(datawork as date) as double precision)=0 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 11:55 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
напугал :) думала вдруг и правда при переносе че нить не то случилось CREATE TABLE TWORKORDER ( IDW INTEGER NOT NULL, IDO INTEGER NOT NULL, DATAWORK DATE NOT NULL, IDTW INTEGER NOT NULL, KCELL INTEGER NOT NULL, FPLACE INTEGER NOT NULL, FOK INTEGER NOT NULL, COMMENT VARCHAR(500) CHARACTER SET NONE NOT NULL, MONEY DOUBLE PRECISION NOT NULL, FVISIBLE INTEGER NOT NULL, WEIGHT INTEGER NOT NULL, SQUARE DOUBLE PRECISION NOT NULL, FRECAST INTEGER NOT NULL, FEARN INTEGER NOT NULL ); ALTER TABLE TWORKORDER ADD CONSTRAINT PK_TWORKORDER PRIMARY KEY (IDW); select * from tworkorder where datawork=333 выдает ту ошибку которую я писала... бред какой-то... может настройки сервера какие-то нужны? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 12:03 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
select * from tworkorder where cast(datawork as double precision)=3333 это ситуации не меняет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 12:05 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
when dataWork=cast('31-DEC-1899' as DATE) then '' else ... тогда уж... или dataWork=cast(0 as DATE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 12:49 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
select * from tworkorder where dataWork=cast(333 as DATE) опять вместо 333 хочет видит строку я просто не понимаю - если data это число типа float то почему он не понимает 333 и select * from tworkorder where dataWork=cast('01.01.2004' as DATE) вот такое проходит просто после общения с MsSql - где формат даты зависит от пользователя как то неприятно дату строкой передавать :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 13:17 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 13:53 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Да, прогнал... Думал, что FB как и M$-SQL так умеет... %)) Что ж, тогда собственную UDF рисовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 13:59 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Да, и еще, не в тему... Johnmen, ты еще не задолбался эту картинку везде совать? Шутка повторенная n раз становится не шуткой а бредом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:03 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
извините но помоему это явный глюк. ну не может быть что только мне понадобилось дату как число передать или я не понимаю глобального смысла ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:32 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
эта... а зачем к числу-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:36 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
>Kull Damned Не, не задолбался... :) Она сама вставляется, ибо моё изображение А вообще-то она заменяет знак и имеет тот же смысл... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:40 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
потому что тип data - это число с плавающей точкой и если на клиенте переводить в строку, то этож должно быть связанно с форматированием строки. те например MsSql понимает строку как дату в зависимости от языковых настроек пользователя. если переводить на клиенте - то от языковых настроек системы. по моему гораздо логичнее использовать число.... хотя если это не мои глюки - а так и положено то и ладно - буду привыкать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:44 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
>Katy >Сообщений: 30 извините но помоему это явный глюк. Не извиним, т.к. не глюк :) >ну не может быть что только мне понадобилось дату как число передать Разложи на составные численные части и собери в какое хочешь численное значение... >или я не понимаю глобального смысла ??? Видимо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:44 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
>>Разложи на составные численные части и собери в какое хочешь численное значение что это означает, пример привиди пожалуйста ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:47 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Katy, да напиши UDF'ку простецкую и не напрягайся... ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 14:58 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
> и если на клиенте переводить в строку, то этож должно быть связанно с форматированием строки. те например MsSql понимает строку как дату в зависимости от языковых настроек пользователя. ну не знаю, у нас в джаве можно указать, какую локаль использовать для преобразования даты в строку, пользовательскую или конкретную en|en, например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 15:02 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Katy авторизвините но помоему это явный глюк. Все очень просто: (Language Reference) CAST( ) Converts a column from one datatype to another. From datatype class -> To datatype class Date -> character, varying character, timestamp Time -> character, varying character, timestamp ОТСЮДА СЛЕДУЕТ ТОЛЬКО ОДНО: авторKaty, да напиши UDF'ку простецкую и не напрягайся... ;)) Best regards, Dnico. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 15:04 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
>Katy Получаем день, месяц и т.д. в численном выражении. Дальше всё это определнным образом суммируем по "календарному" алгоритму с учетом "нулевого" в твоем понимании года... :) >Kull Damned >Katy, да напиши UDF'ку простецкую и не напрягайся... ;)) Простецкой она не будет. Особенно по соглашению о передачи параметров различных типов и их преобразованию... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 15:06 |
|
||
|
Firebird-1.5 поле типа date - как сравнивать с числом?
|
|||
|---|---|---|---|
|
#18+
Kull Damned да ладно мне вообшем к счастью с этой прогой долго возиться не придеться - просто бета версия нужна была - щас строкой уже сделала. хотелось принцип понять. :) в MsSql тоже можно изменить формат перед запросом и замете я про cast не спрашивала - вопрос был в том : почему тип data (который на самом деле число) по умолчанию нормально сравниваеться со строкой - а с числом глючит. Думала мот в синтаксисе заморочка :) ну раз так и должно быть - то и ладно. кстате про udf - тут можно написать UDF не как внешнюю те например в том же MsSql я могу на T-Sql написать выборку из справочника CREATE function dbo.Client2Fio(@idClient int) RETURNS char(255) Begin declare @fio char(255) set @fio=isnull((select fio from nsiClient where idClient=@idClient), '') return @fio end а потом в запрсах писать select dbo.Client2Fio(idClient) from torder сдесь мне приходиться писать select select fio from nsiClient where idClient=torder.idClient) from torder и так в 20 запросах :) Мне уже убегать нужно... Спасибо всем за помош :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2004, 15:09 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32434333&tid=1579076]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 220ms |
| total: | 392ms |

| 0 / 0 |
