Skip to content

Commit 46ec019

Browse files
Grif392MKleusberg
authored andcommitted
Add Java Epoch format conversion
Java epoch is measured in milliseconds from unix 0; conversion is a (roundabout, best I could find) way to convert milliseconds into a SQLite datetime while keeping millisecond resolution. Easier alternative would be column_name / 1000, but loses _some_ theoretical resolution.
1 parent ae8df56 commit 46ec019

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/ColumnDisplayFormatDialog.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ ColumnDisplayFormatDialog::ColumnDisplayFormatDialog(const QString& colname, QSt
2020
ui->comboDisplayFormat->addItem(tr("Octal number"), "octal");
2121
ui->comboDisplayFormat->addItem(tr("Round number"), "round");
2222
ui->comboDisplayFormat->addItem(tr("Unix epoch to date"), "epoch");
23+
ui->comboDisplayFormat->addItem(tr("Java epoch (milliseconds) to date"), "javaEpoch");
2324
ui->comboDisplayFormat->addItem(tr("Upper case"), "upper");
2425
ui->comboDisplayFormat->addItem(tr("Windows DATE to date"), "winDate");
2526
ui->labelDisplayFormat->setText(ui->labelDisplayFormat->text().arg(column_name));
@@ -61,6 +62,8 @@ void ColumnDisplayFormatDialog::updateSqlCode()
6162
ui->editDisplayFormat->setText("upper(" + sqlb::escapeIdentifier(column_name) + ")");
6263
else if(format == "epoch")
6364
ui->editDisplayFormat->setText("datetime(" + sqlb::escapeIdentifier(column_name) + ", 'unixepoch')");
65+
else if(format == "javaEpoch")
66+
ui->editDisplayFormat->setText("strftime('%Y-%m-%d %H:%M:%S.', " + sqlb::escapeIdentifier(column_name) + "/1000, 'unixepoch') || (" + sqlb::escapeIdentifier(column_name) + "%1000)");
6467
else if(format == "winDate")
6568
ui->editDisplayFormat->setText("datetime ('1899-12-30', " + sqlb::escapeIdentifier(column_name) + " || \" days\" )");
6669
else if(format == "appleDate")

0 commit comments

Comments
 (0)