webForumDet fria alternativet

HSQL syntax för date()

Databaser & SQL

1 svar · 488 visningar · startad av swingman

Medlem sedan jan. 200686 inlägg
Frågan#1

Hej...nån som vet hur man kan få följande kod att att funka i hsqldb??

SELECT d.name_,i.key_,i.start_,i.end_
FROM   jbpm_processdefinition d, jbpm_processinstance i
WHERE  d.id_ = i.processdefinition_ and (date(i.start_) between '2009-01-01' and '2010-01-20' or date(i.end_) between '2009-01-01' and '2010-01-20');

Koden fungerar bra i mysql men i hsql så fungerar inte funktionen date(). Vad ska jag använda istället eller hur ska jag göra för att lösa det

Medlem sedan mars 20007 896 inlägg
#2

Nej, date() finns inte tillgänglig som funktion i HSQL.

Däremot finns dayofmonth(), month() och year():

...
where d.id_ = i.processdefinition_
   and
   (year(i.start_) between year('2009-01-01') and year('2010-01-20')
    and
    month(i.start_) = month('2010-01-01')
    and
    dayofmonth(i.start_) between dayofmonth('2009-01-01') and dayofmonth('2010-01-20')
   )
...

Typ. Du får förlänga din where-sats med de kriterier du behöver... Här hittar du funktionsreferenserna.

253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)