2016-01-27 52 views
0

如何使用當前日期命名我的數據庫文件,以便它在運行時創建一個以當前日期命名的數據庫文件。這是我到目前爲止:Sqlite3在python中命名帶有變量的db文件

import sqlite3 
import time 


timedbname = time.strftime("%d/%m/%Y") 

# Connecting to the database file 
conn = sqlite3.connect(???) 

與此錯誤與'/'或' - '或'。'相同。在 「%d /%M /%Y」:

conn = sqlite3.connect(timedbname, '.db') 
TypeError: a float is required 
27.01.2016 
+0

你有沒有嘗試使用一個字符串? –

回答

0

這工作:

import sqlite3 
import time 


timedbname = time.strftime("_" + "%d.%m.%Y") 
conn = sqlite3.connect(timedbname + '.db') 
0

嘗試使用:

time.strftime("%d-%m-%Y")

我想這不會是因爲在生成日期斜線的工作。

+0

我輸入了什麼內容:conn = sqlite3.connect(here?) – Ghostali

+0

我從來沒有使用sqlite3,但我可能需要使用 'conn = sqlite3.connect(timedbname)'那裏。 我查了一下sqlite3,它似乎應該創建數據庫,如果它不存在,所以你應該沒問題。 –

+0

我解決了它,你可以看看我的答案。謝謝大家的幫助 – Ghostali

0

你的表名不能有破折號。它也不能以數字開頭。

import sqlite3 
from datetime import date 

timedbname = '_' + str(date.today()).replace('-','_') 

# Connecting to the database file 
conn = sqlite3.connect(':memory:') 
cursor = conn.cursor() 

cursor.execute('''CREATE TABLE %s (col1 int, col2 int)''' % (timedbname)) 
cursor.execute('''INSERT INTO %s VALUES (1, 2)''' % (timedbname)) 
cursor.execute('''SELECT * FROM %s'''%timedbname).fetchall() 
+0

你可以,如果你[quote](http://www.sqlite.org/lang_keywords.html)呢。 –

相關問題