也许是一个愚蠢的问题。我从另一个网站获取了此SQL函数的信息:
c.execute("""CREATE TABLE IF NOT EXISTS score (
X1 string,
Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL
)""")
我对此SQLite函数的理解是,如果未指定值,它将默认为系统时钟上的当前时间戳。我只是不确定如何将这个默认值作为执行函数的一部分“插入”:
c.execute("INSERT INTO score VALUES (?, ?)", (String, **(WHAT GOES HERE??)** ))
conn.commit()
答案 0 :(得分:0)
SQL Lite中有一个名为date的函数,您可以使用它来计算当前日期:
SELECT date('now');
或获取当前的unix时间戳。
SELECT strftime('%s','now');
有关更多用法,请参见此参考:https://www.sqlite.org/lang_datefunc.html
答案 1 :(得分:0)
c.execute('''CREATE TABLE IF NOT EXISTS score (
X1 TEXT,
timestamp_record timestamp
)''')
c.execute('''INSERT INTO score VALUES (?, datetime('now','localtime'))''', (some_variable_string,))
conn.commit()
这就是我让它工作的方式。我替换了其中一个“?”使用时间戳函数 (datetime),并且仅在末尾包含文本变量和“,”。这似乎对我有用,因为我遇到了同样的问题。
可能有一些代码最佳实践说不要将函数直接放入数据库,但我不知道如何使用 SQL Lite 的时间戳函数,如下面的链接所述。