如何将SQL语句转换为SQLite语句?

如何将SQL语句转换为SQLite语句?,sql,sqlite,Sql,Sqlite,如何将此SELECT语句转换为SQLite语句 SELECT count(`listId`) AS countP, DATE_FORMAT( DATE_ADD(DATE_FORMAT(timestamp, '%Y-%m-%d %H:00:00'), INTERVAL IF( MINUTE( timestamp )<30, 0, 1) HOUR), '%H:30') AS hourP FROM `polldata`

如何将此SELECT语句转换为SQLite语句

SELECT count(`listId`) AS countP, 
       DATE_FORMAT( DATE_ADD(DATE_FORMAT(timestamp, '%Y-%m-%d %H:00:00'),
                             INTERVAL IF( MINUTE( timestamp )<30, 0, 1) HOUR), '%H:30') AS hourP
  FROM `polldata` 
 WHERE `gcId`=01
   AND `listId`=02
 GROUP BY hourP
 ORDER BY hourP
 LIMIT 0, 30
选择count(`listId`)作为countP,
日期格式(日期添加(日期格式(时间戳,%Y-%m-%d%H:00:00)),

如果(分钟(时间戳)您希望获取一个现有的MySQL文件并将其转换为与之等价的SQLLite,则为INTERVAL

此过程分为两部分:

1.将DDL从一个SQL数据库转换为另一个SQL数据库(DDL==“数据定义语言”)

2.将数据从一个模式迁移到另一个模式

每个SQL供应商都从ANSI SQL开始,并添加自己的专有语法。因此,您必须从MySQL定义创建SQLLite模式(表、列、索引等)

数据迁移过程称为ETL(“提取-转换-加载”)。您可能需要将MySQL中的一些数据转换为SQLLite

最好的方案是将MySQL数据导出到.csv文件中,在SQLLite中创建表,然后导入.csv文件

参考这里


SQLite没有本机时间戳类型。 假设时间戳存储为
yyyy-mm-dd hh:mm:ss
字符串,查询如下所示:

SELECT count(`listId`) AS countP,
       strftime('%H:30',
                timestamp,
                CASE WHEN substr(timestamp, 15, 2) < '30'
                     THEN '1 hours'
                     ELSE '0 hours'
                END) as hourP
  FROM `polldata` 
 WHERE `gcId`=01
   AND `listId`=02
 GROUP BY hourP
 ORDER BY hourP
 LIMIT 0, 30
选择count(`listId`)作为countP,
strftime(“%H:30”,
时间戳,
substr(时间戳15,2)<'30'时的情况
然后是“1小时”
其他“0小时”
(完)
从'polldata'开始
其中`gcId`=01
和'listId`=02
按小时分组
按小时订购
限制0,30

通过使用sqlite语法……这时您可以参考sqlite手册。您可以从删除所有这些backtick开始。为什么您认为它在sqlite中不起作用?