SQLite Python:插入默认值(时间戳)

时间:2019-01-21 20:28:20

标签: python sqlite

也许是一个愚蠢的问题。我从另一个网站获取了此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()

2 个答案:

答案 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 的时间戳函数,如下面的链接所述。

Date And Time Functions