Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 我需要将hh:mm:ss转换为秒_Sqlite - Fatal编程技术网

Sqlite 我需要将hh:mm:ss转换为秒

Sqlite 我需要将hh:mm:ss转换为秒,sqlite,Sqlite,我有一个列,其中包含经过的时间值,它们的格式为hh:mm:ss或mm:ss。由于数据被导入,我无法控制这一点 我需要做的是找到一种方法进行全局更新,将值更改为秒,或者找到一种方法以当前格式对列使用sum函数 一个问题是数据混合了mm:ss和hh:mm:ss。小时字段没有零填充。语句 SELECT SUBSTR(SUBSTR("0000000"||time,LENGTH(time),8),1,2)*3600 + SUBSTR(SUBSTR("0000000"||time,LENGTH(t

我有一个列,其中包含经过的时间值,它们的格式为hh:mm:ss或mm:ss。由于数据被导入,我无法控制这一点

我需要做的是找到一种方法进行全局更新,将值更改为秒,或者找到一种方法以当前格式对列使用sum函数

一个问题是数据混合了mm:ss和hh:mm:ss。小时字段没有零填充。

语句

SELECT
  SUBSTR(SUBSTR("0000000"||time,LENGTH(time),8),1,2)*3600 + 
  SUBSTR(SUBSTR("0000000"||time,LENGTH(time),8),4,2)*60 + 
  SUBSTR(SUBSTR("0000000"||time,LENGTH(time),8),7,2)
FROM
  table
WHERE
  ...

应混合使用hh:mm:ss、h:mm:ss、mm:ss、m:ss、ss和s格式,并且时间分隔符应为任意字符。

是!成功了。现在,我必须决定是在UPDATE语句中使用此代码来修复数据库,还是只将其包含在查询中。谢谢你的帮助@Cidtek-我建议您向数据库中添加新列
time\u sec
,并对每一行执行简单的
update
,这样以后您就可以删除旧的
time
列,并更快地处理
time\u sec
信息。祝你好运