-2

如何将此 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
4

2 回答 2

0

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
于 2012-11-22T10:14:53.823 回答
0

您想要获取一个现有的 MySQL 文件并将其转换为它的 SQL Lite 等效文件。

这个过程有两个部分:

1.将DDL从一个SQL数据库翻译到另一个(DDL ==“数据定义语言”)

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

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

数据迁移过程称为 ETL(“Extract-Transform-Load”)。您可能必须从 MySQL 中处理一些数据才能将其导入 SQL Lite。

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

参考这里

http://www.codeproject.com/Articles/26932/Convert-SQL-Server-DB-to-SQLite-DB

于 2012-11-22T05:40:05.107 回答