Permalänk

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

Visa signatur

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 |

Permalänk
Medlem

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.

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk
Avstängd

Som ovan säger eller:

WHERE datestart > @datum1 AND dateend < @datum2

Permalänk

@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.

Visa signatur

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 |

Permalänk
Medlem
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å?

Visa signatur

AW3423DW QD-OLED - Ryzen 5800x - MSI Gaming Trio X 3090 - 64GB 3600@cl16 - Samsung 980 Pro 2TB/WD Black SN850 2TB

Permalänk

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

Visa signatur

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 |