如何在Sqlite中将日期时间转换为日期?

时间:2019-07-13 22:00:45

标签: sqlite

我在表格(记录)中有一列(交易日期)。日期的当前格式为(YYYY MM DD HH MM SS)或与之接近的格式。我想将其转换为YY MM DD。如何为整个专栏做到这一点?

我尝试了alter命令。我已经尝试了一种变体:

http()
    .client(todoClient)
    .receive()
    .response(HttpStatus.OK)
    .messageType(MessageType.JSON)
    .validate("$.id", "${todoId}")
    .validate("$.title", "${todoName}")
    .validate("$.description", "${todoDescription}");

但是只有错误。

1 个答案:

答案 0 :(得分:0)

SQLite没有内置的日期类型,因此某些应用程序使用字符串或数字来存储日期。如果您的应用程序是使用字符串的应用程序之一,那么您有两种选择。

  1. 推荐:您可以在执行查询时使用SQLite日期函数之一(类似于您提供的SQL)转换字符串。

  2. 您可以将所有存储的日期字符串更新(使用SQL-UPDATE)为新的字符串格式。由于SQLite不支持将DATE作为列类型,因此ALTER TABLE不能用于更改列定义。请注意,如果您打算使用SQLite日期函数,SQLite会支持它列出的字符串格式(和一种数字格式)。

我不知道您的具体情况,但是既然您要这样:如果您想更改现有列中的字符串表示形式(假定它是您描述的格式的字符串),则可以尝试以下操作:

UPDATE records SET [transaction dates]=strftime('%Y-%m-%d', [transaction dates]);

顺便说一句:查询没有问题,因此也许您可以发送所收到的错误。以下查询对我来说效果很好。

SELECT strftime('%Y-%m-%d', 'now');
returned:
2019-07-13

有关SQLite中日期的更多信息,请参见以下内容。 https://sqlite.org/lang_datefunc.html