Fórum pro uživatele kancelářského balíku OpenOffice | LibreOffice
 

#1 18. 2. 2015 11:12:09

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Datum a čas - syntaxe dotazu - VYŘEŠENO

Jsem začátečník a pracovat s databází Base se učím metodou "pokus-omyl" Tak nejprve obecně: Existuje někde učebnice přímo pro program Base (Kromě série článků "Práce s databází Base z OpenOffice.org" na tomto serveru, který bohužel není kompletní?)

Pokud ne, tak konkrétní dotaz:

Mám tabulku se dvěma sloupci typy Time - Cas_start a Cas_end. Jaká je správná syntaxe SQL dotazu, který mi bude generovat sloupec kde bude hodnota rozdílu časů - tedy Cas_end - Cas_start Zápis (přímý rozdíl) který funguje pro sloupce typu Integer zde hlásí chybu. Musí se typ Time (a analogicky Dase) sčítat a odčítat jinak, nebo jak zjistím dobu, která uplynula mezi dvěma časovými údaji?

Díky za odpověď

Editoval hdplot (18. 2. 2015 21:02:11)

Offline

#2 18. 2. 2015 11:28:01

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,678

Re: Datum a čas - syntaxe dotazu - VYŘEŠENO

V případě datumů a času je potřeba deklarace "LONG" respektive Long Integer. Některé databáze mají přímo typ dat čas a datum. To co potřebujete je práce s "ALIASem". Když toto téma vyhledáte v historii tak se dopracujete k tomu řešení +ČasEnd - ČasStart. V podstatě se tento vzorec napíše do sloupce který nazvete například jako "Rozdíl časů" a podobně.


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#3 18. 2. 2015 11:54:04

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Re: Datum a čas - syntaxe dotazu - VYŘEŠENO

V zásadě je mi jasné, jak vytvořit ten sloupec "Rozdíl časů". Ale SQL dotaz mám napsaný takto:

SELECT "Vazba_ZAK_ID", "Cas_start", "Cas_stop", "Cas_start" - "Cas_stop" AS "Doba" FROM "Prubeh" WHERE "Vazba_ZAK_ID" = 0

Pokud tam není "Cas_start" - "Cas_stop" AS "Doba" tak generuje tabulku a vše je OK. Když tam přidám to odčítání, tak nahlásí chybu "The data content could not be loaded. Wrong data type: java.lang.NumberFormatExteption in statement [ a citace m0ho dotazu ] Tak6e kde m8m deklarovat ten LONG - v tabulce hodnot, nebo n2kde v tabulce generovanou dotazem ??

Offline

#4 18. 2. 2015 12:19:43

neutr
Člen
Registrace: 8. 3. 2007
Příspěvků: 2,678

Re: Datum a čas - syntaxe dotazu - VYŘEŠENO

To co popisuji nemusíte řešit pomocí SQL. Jde vlastně o variantu výpočtového pole které má název ALIAS. Vzorec se píše přímo do hlavičky pod "Alias".
      Ta deklarace pro SQL by měla stačit v deklaraci sloupce. Podle toho co píšete by to měla být naopak deklarace v rámci programovacího jazyka "Java". Hláška spočívá v tom, že "data" jsou nečitelná ve smyslu formátu čísel. Možná tedy musíte otestovat re-deklaraci v SQL. S tím jsem se sice ještě nesetkal ale je to možné. SQL může číst například běžný formát .txt a pro výpočty potřebuje "dodeklarovat". Otestujte re-deklaraci například "Cas_stop" AS "Doba" as Long (as long integer, nebo as time, nebo as date a podobně).


Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte tak orientaci na fóru při vyhledávání řešení problémů
JAK OZNAČIT TÉMA ZA VYŘEŠENÉ

Offline

#5 18. 2. 2015 21:00:33

hdplot
Člen
Registrace: 18. 2. 2015
Příspěvků: 79

Re: Datum a čas - syntaxe dotazu - VYŘEŠENO

Tak si odpovím sám. Správně má být:
SELECT "Cas_start", "Cas_stop", DATEDIFF( 'minute', "Cas_start", "Cas_stop" ) AS "Doba" FROM "Prubeh"

Místo minute může být zadána jiná přesnost, ale mě to stačí takto. Tak snad to někomu taky pomůže

Offline

Zápatí