2016-04-26 84 views
1

我需要幫助。我正在使用pyodbc,並已與服務器和我的表聯繫。但我想從今天的日期獲得新的更新。 我已經使用cursor.execute("SELECT * FROM Disk")從今天的日期我的MSSQL Pyodbc

但與此我得到像6000行。從二月二十六日到今天的日期。 我如何才能從今天的日期或一週前獲得?

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

預先感謝

+0

你能提供關於表格模式的更多信息嗎? – salomonderossi

+0

完成=)我認爲,即時通訊相當新的編程 – Ares

回答

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) 

它然後用按該順序

CUSTID,服務器名,驅動器,DT,SIZE_MB,free_mb,last_reboot返回從MSSQL服務器數據,last_update,wblastSuccesfull,wblastbackup,TempID

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

但是由於存在很多數據TempID從456變爲6023並且追溯到二月份,我想從今天的日期和/或1周內取回。那可能嗎?

1

您可以使用mysql日期和時間函數。 例如看到條目從今天: cursor.execute( 「SELECT * FROM盤裏DT> CURRENT_DATE」)

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

+0

感謝Gautam840,但不幸的是它沒有工作。我收到錯誤消息:Traceback(最近調用最後一次): 文件「C:\ Users \ alex \ Desktop \ Programmering \ Blattdata \ sql.py」,第8行,在 cursor.execute(「SELECT * FROM Disk WHERE dt> CURRENT_DATE「) pyodbc.ProgrammingError :('42000',」[42000] [Microsoft] [ODBC SQL Server Driver] [SQL Server]關鍵字'CURRENT_DATE'(156)(SQLExecDirectW)「附近的語法錯誤。 – Ares

0

好,我一直在嘗試不同的東西,原因,因爲我生活在挪威,我們有不同的日期格式......我們有dd.mm.yyy eksample:2016年12月24日

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) 

以及與此我得到的輸出:

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

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

現在我怎麼能改變這種[「SELECT * FROM Disk WHERE dt ='CURRENT_DATE'」?