【问题标题】:Change Format from DD/MM/YYYY hh:mm to YYYY-MM-DD hh:mm将格式从 DD/MM/YYYY hh:mm 更改为 YYYY-MM-DD hh:mm
【发布时间】:2021-05-16 22:47:18
【问题描述】:

我尝试使用以下语句将 DateTimes 更改为 SQLite 所需的 DateTime 格式YYYY-MM-DD hh:mm 以便执行计算。但是该声明给了我一个“输入不完整”的信息。示例输入输出如下:

例如03/05/2020 17:34 => 2020-05-03 17:34

> UPDATE Combined_Bike_Ride SET started_at = substr(started_at,7,4) ||"-"|| substr(started_at(4,2)||"-"||substr(started_at(1,2)||" "||substr(started_at(12,2)||":"||substr(started_at(15,2)

您认为声明中缺少什么?

【问题讨论】:

  • (里面的substr改为,

标签: sqlite datetime substr


【解决方案1】:

为了在这种情况下进行调试,请采取“小步骤”。更改虚拟测试数据库中虚拟列中的内容。然后将更新命令拆分为更小的部分,一次添加一个。

大约需要 2 分钟才能看到您在需要逗号的位置放置了一个括号。

UPDATE dt 
    SET 
       md = 
       substr(sa,7,4) ||"-"|| 
       substr(sa,4,2)||"-"||
       substr(sa,1,2)||" "|| 
       substr(sa,12,2)||":"||
       substr(sa,15,2)

你在其中的大多数中都有substr(sa(4,2),使它成为一个(不完整的)函数。

顺便说一句,将 SQL 语句分成几行是完全可以的,这使它更具可读性。

最重要的一课:在调试中采取婴儿步骤

请注意,如果日期之一没有前导零,您的函数将失败。在编程语言中这样做更可靠,as discussed here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2018-03-25
    相关资源
    最近更新 更多