首页 > 解决方案 > 如何使用 PHP PicoDb 查询生成器执行包含 DATE_FORMAT 语法的查询?

问题描述

我正在以 PicoDb 数据库查询构建器为背景的系统(Kanboard)中编码。所以,我需要执行一个特定的 MySQL 查询。

我的桌子是这样的:

id, title, date_moved
int, varchar, UNIX_TIMESTAMP

所以,我想从“date_moved”列中减去当前时间戳时间。之后,我想在几天内转换结果。

一切都很好,但是当我在 MySQL 客户端中执行查询时在系统之外。

SELECT title, DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()- date_moved), ‘%d’) AS ‘Age’ 
FROM 
    tasks 
WHERE 
    project_id = HERE_COMES_THE_PROJECT_ID 
ORDER BY 
   Age

但是,有人知道如何通过 PicoDB 执行它吗?

有关 PicoDB 的信息

https://github.com/elvanto/picodb

标签: phpmysqlkanban

解决方案


尝试以这种方式构建查询,如果它可以为您提供您想要的确切信息。

$db->table('tasks')->subquery('DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()- date_moved), ‘%d’)', 'Age')->buildSelectQuery();

然后你应该尝试执行这样的查询。

$db->table('tasks')->subquery('DATE_FORMAT(FROM_UNIXTIME(UNIX_TIMESTAMP()- date_moved), ‘%d’)', 'Age')->eq('project_id', 42)->asc('Age')->findAll()


推荐阅读