2016-04-26 2 views
1

Ich brauche Hilfe. Ich benutze pyodbc und habe Kontakt mit Server und mit meinem Tisch bekommen. aber ich möchte nur neue Updates vom heutigen Datum bekommen. Ich habe cursor.execute("SELECT * FROM Disk")Pyodbc mit meinem MSSQL vom heutigen Datum

verwendet, aber mit diesem bekomme ich wie 6000 Zeilen. und vom 26. Februar bis zum heutigen Datum. wie komme ich gerade vom heutigen datum oder einer woche voraus?

Beispiel cursor.execute("SELECT * FROM Disk WHERE dt > todays_date")

Vielen Dank im Voraus

+0

Können Sie bitte weitere Informationen zum Tabellenschema angeben? – salomonderossi

+0

done =) ich denke, ich bin ziemlich neu in dieser Welt der Programmierung – Ares

Antwort

0
import sys 
import pyodbc 
from datetime import datetime 

cnxn = pyodbc.connect(r'DRIVER={SQL Server};SERVER=192.168.205.14\WHATSUP;DATABASE=Monitor;UID=username;PWD=password') 
cursor = cnxn.cursor() 

for row in cursor.fetchall(): 
    print (row) 

Es gibt dann Daten aus dem MSSQL Server mit in dieser Reihenfolge

CustID, server, Antrieb, dt, SIZE_MB, free_mb, last_reboot , last_update, wblastSuccesfull, wblastbackup, TempID

('BIOBE', 'SBS', 'C:', '26 .0 2.2016 ',' 279 ',' 151 ', '36', '38 ', '25 .02.2016', '25 .02.2016 ', 453)

aber da es viele Daten gibt TempID geht von 456 zu 6023 und stammt aus dem Februar Ich möchte nur aus dem heutigen Tag und/oder 1 Woche holen. ist das möglich?

1

Sie können die Datums- und Uhrzeitfunktionen von mysql verwenden. Zum Beispiel Einträge von heute zu sehen: cursor.execute ("SELECT * FROM Festplatte, wo dt> CURRENT_DATE")

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

+0

Danke Gautam840, aber leider hat es nicht funktioniert. Ich erhalte die Fehlermeldung: Traceback (letzter Aufruf zuletzt): Datei "C: \ Benutzer \ alex \ Desktop \ Programmering \ Blattdata \ sql.py", Zeile 8, in cursor.execute ("SELECT * FROM Disk WHERE dt> CURRENT_DATE ") pyodbc.Programmierfehler: ('42000'," [42000] [Microsoft] [ODBC SQL Server-Treiber] [SQL Server] Falsche Syntax nahe dem Schlüsselwort 'CURRENT_DATE'. (156) (SQLExecDirectW) ") – Ares

0

Ok ich, da ich eine andere Sache, weil versucht haben, leben in Norwegen, wir ein anderes Datumsformat haben ... haben wir DD.MM.YYY Der Beweis unserer: 24.12.2016

import pyodbc 
import datetime 

format = "%d.%m.%Y" 
today = datetime.datetime.today() 
s = today.strftime(format) 
d = datetime.datetime.strptime(s, format) 
print (d.strftime(format)) 

c = pyodbc.connect(r'DRIVER={SQL Server};SERVER=192.168.205.14\WHATSUP;DATABASE=Monitor;UID=sa;PWD=WhatsUp_Gold') 
cursor = c.cursor() 
cursor.execute("SELECT * FROM Disk WHERE dt = '27.04.2016'") 

for row in cursor.fetchall(): 
    print (row) 

und mit diesem i erhalten Ausgabe:

27.04.2016 <--this is because of the print (d.strftime(format))"

(' Aconte ', 'Srv1 ', 'C: ', '27.04.2016', '466 ', '302 ', '6 ', '6 ', ' ', ' ', 6699)

jetzt wie kann ich dies ändern ["SELECT * FROM Disk WHERE dt = '27 .04.2016 '" zu so etwas wie "SELECT * FROM Disk WHERE dt =' CURRENT_DATE '"?