Trädvy Permalänk
Medlem
Registrerad
Jun 2012

mySQLdb kolla 2 raders datum

Hej, har en databas där jag har ett startdatum och ett slutdatum. Nu vill jag hämta data ifrån alla de kolumner där datumen ligger mellan dessa två datumen. Jag har två variabler där man får skriva in ett startdatum och ett slutdatum och de är dessa som man kommer jämföra mot i databasen. Jag får det att fungera att bara hämta från en rad med dessa variabler, men när jag lägger in mitt slutdatum får jag inte ut något.

import MySQLdb print "Date from" startDate = raw_input() print"Last date" endDate = raw_input() # Prepare SQL query to INSERT a record into the database. sql = "SELECT * FROM calender \ WHERE datestart BETWEEN '%s' AND dateend '%s'" % (startDate, endDate)

Antar inte det bara går att skriva AND dateend där dateend är en rad i tabellen. kodar detta i python

CPU: Intel core i5 3450 | GPU: Asus Radeon HD 7870 | PSU: Corsair GS 600W | Moderkort: MSI b75a-g43 | HDD WD blue 500 GB | RAM: Crucial ballistiX 2x4gb DDR3 1600MHz | Ljudkort: Asus Xonar DG |

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2009

Förstår inte riktigt vad du vill göra, men vill du kolla att båda fälten datestart och dateend ska vara inom samma intervall?

WHERE (datestart BETWEEN 'datum1' AND 'datum2') AND (dateend BETWEEN 'datum1' AND 'datum2')

bör fungera om det är det du är ute efter.

7900x @ 4,7ghz - 1080ti @ 2100

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jun 2010

Som ovan säger eller:

WHERE datestart > @datum1 AND dateend < @datum2

Trädvy Permalänk
Medlem
Registrerad
Jun 2012

@celoz:

Alltså datestart och dateend kommer bilda ett intervall. ex 2014-05-0 till 2015-09-19. Jag vill nu få ut kolumner som ligger messa dessa datum. Jag har två variabler som jag vill kunna vara reglerbar genom att användaren själv väljer vilka datum han vill kolla på.

sql = "SELECT * FROM calender \ WHERE datestart BETWEEN '%s' AND '%s'" % (startDate, endDate)

Denna kod fungerar för 1 rad och det är datestart, men just nu kollar den bara ett intervall när olika datum startat. Vill få ut som sagt de kolumner som har ett datestart och dateend som de användaren har skrivit in.

CPU: Intel core i5 3450 | GPU: Asus Radeon HD 7870 | PSU: Corsair GS 600W | Moderkort: MSI b75a-g43 | HDD WD blue 500 GB | RAM: Crucial ballistiX 2x4gb DDR3 1600MHz | Ljudkort: Asus Xonar DG |

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2009
Skrivet av turbogeten:

@celoz:

Alltså datestart och dateend kommer bilda ett intervall. ex 2014-05-0 till 2015-09-19. Jag vill nu få ut kolumner som ligger messa dessa datum. Jag har två variabler som jag vill kunna vara reglerbar genom att användaren själv väljer vilka datum han vill kolla på.

sql = "SELECT * FROM calender \ WHERE datestart BETWEEN '%s' AND '%s'" % (startDate, endDate)

Denna kod fungerar för 1 rad och det är datestart, men just nu kollar den bara ett intervall när olika datum startat. Vill få ut som sagt de kolumner som har ett datestart och dateend som de användaren har skrivit in.

Fungerar inte det snajk skrev då?

7900x @ 4,7ghz - 1080ti @ 2100

Trädvy Permalänk
Medlem
Registrerad
Jun 2012

@celoz:
Haha jo fick de o fungera nu, hade nog stirrat mig blind. Tack grabbar

CPU: Intel core i5 3450 | GPU: Asus Radeon HD 7870 | PSU: Corsair GS 600W | Moderkort: MSI b75a-g43 | HDD WD blue 500 GB | RAM: Crucial ballistiX 2x4gb DDR3 1600MHz | Ljudkort: Asus Xonar DG |