SQLite Current Timestamp with Milliseconds?

后端 未结 4 1770
感动是毒
感动是毒 2020-12-29 04:57

I am storing a timestamp field in a SQLite3 column as TIMESTAMP DATETIME DEFAULT CURRENT_TIMESTAMP and I was wondering if there was any way for it to include mi

相关标签:
4条回答
  • 2020-12-29 05:20

    The following method doesn't require any multiplies or divides and should always produce the correct result, as multiple calls to get 'now' in a single query should always return the same result:

    SELECT strftime('%s','now') || substr(strftime('%f','now'),4);
    

    The generates the number of seconds and concatenates it to the milliseconds part from the current second+millisecond.

    0 讨论(0)
  • 2020-12-29 05:27

    Instead of CURRENT_TIMESTAMP, use (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')) so that your column definition become:

    TIMESTAMP DATETIME DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW'))
    

    For example:

    CREATE TABLE IF NOT EXISTS event
    (when_ts DATETIME DEFAULT(STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW')));
    
    0 讨论(0)
  • 2020-12-29 05:35

    To get number of milliseconds since epoch you can use julianday() with some additional calculations:

    -- Julian time to Epoch MS     
    SELECT CAST((julianday('now') - 2440587.5)*86400000 AS INTEGER); 
    
    0 讨论(0)
  • 2020-12-29 05:36

    Here's a query that will generate a timestamp as a string with milliseconds:

     select strftime("%Y-%m-%d %H:%M:%f", "now"); 
    

    If you're really bent on using a numeric representation, you could use:

    select julianday("now"); 
    
    0 讨论(0)
提交回复
热议问题