Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

MYSQL og søgning i felt af typen DATE

4 views
Skip to first unread message

Kurt G

unread,
Jan 29, 2017, 8:03:01 AM1/29/17
to
Hej.
Jeg har en tabel, hvor der er et felt af typen DATE. Feltet hedder
'udm', der står for udmeldt. Dette felt er en senere tilføjelse som
ønskes af kassereren!
Desuden er der et felt 'Udmeldt', som har et tal større end 0 for
rækkefølgen af udmeldingerne.

Jeg vil gerne liste nogle af posterne, som indeholder årstallet 2016,
dertil bruger jeg forespørgselen:

SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm = LIKE '%2016%' ORDER
BY Udmeldt DESC

Uden "AND udm = LIKE '%2016%'" virker det OK.

Jeg kan selvfølgelig lave felter "udm" om til tre felter med hver deres
del af datoen, men er der ikke en anden løsning?
--
Mvh Kurt G.

Jan Hansen

unread,
Jan 29, 2017, 8:20:10 AM1/29/17
to
Kurt G skrev Sun, 29 Jan 2017 14:02:34 +0100:

> SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm = LIKE '%2016%' ORDER
> BY Udmeldt DESC

Prøv uden lighedstegnet,
SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm LIKE '%2016%' ORDER BY Udmeldt DESC





--
mvh Jan.
Help Microsoft stamp out piracy. Give
Linux to a friend today!

Kurt G

unread,
Feb 1, 2017, 10:32:49 AM2/1/17
to
On 29-01-2017 14:20, Jan Hansen wrote:
> Kurt G skrev Sun, 29 Jan 2017 14:02:34 +0100:
>
>> SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm = LIKE '%2016%' ORDER
>> BY Udmeldt DESC
>
> Prøv uden lighedstegnet,
> SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm LIKE '%2016%' ORDER BY Udmeldt DESC
>
Tak, det vil jeg prøve. Men = var med i det eksempel, som jeg fandt på
nettet!
--
Mvh Kurt G.

Martin Larsen

unread,
Feb 6, 2017, 12:38:18 PM2/6/17
to
Den 01-02-2017 kl. 16:32 skrev Kurt G:

> Men = var med i det eksempel, som jeg fandt på nettet!

Så er der fejl i eksemplet! Der skal ikke lighedstegn sammen med LIKE.

Kurt G

unread,
Feb 9, 2017, 1:32:17 PM2/9/17
to
OK

--
Mvh Kurt G.

Jørn Andersen

unread,
Apr 26, 2017, 6:49:48 PM4/26/17
to
On Sun, 29 Jan 2017 14:02:34 +0100, Kurt G <kur...@guldbaek.net>
wrote:

>Hej.
>Jeg har en tabel, hvor der er et felt af typen DATE. Feltet hedder
>'udm', der står for udmeldt. Dette felt er en senere tilføjelse som
>ønskes af kassereren!
>Desuden er der et felt 'Udmeldt', som har et tal større end 0 for
>rækkefølgen af udmeldingerne.
>
>Jeg vil gerne liste nogle af posterne, som indeholder årstallet 2016,
>dertil bruger jeg forespørgselen:
>
>SELECT * FROM Medlemmer WHERE Udmeldt > 0 AND udm = LIKE '%2016%' ORDER
>BY Udmeldt DESC
>
>Uden "AND udm = LIKE '%2016%'" virker det OK.

Hvis udm er et dato-felt, som du skriver, så ville jeg bruge:

SELECT * FROM Medlemmer
WHERE Udmeldt > 0 AND YEAR(udm) = 2016
ORDER BY Udmeldt DESC

Det er noget rod at bruge tekst-funktioner (LIKE) til dato-felter.
Brug dato-funktioner til dato-felter.

Det er i øvrigt også langt hurtigere. LIKE – især et LIKE, der starter
med joker-tegn – er pr.definiton langsom.

RTFM:
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html


Good luck,
Jørn

--
Jørn Andersen
http://socialister.dk
http://marxisme.dk

Kurt G

unread,
Jul 3, 2017, 9:46:10 AM7/3/17
to
Tak, Jørn

--
Mvh Kurt G.
0 new messages