在我的Laravel项目中,我在查询中使用了一些基于MySQL的SQL函数,如下所示:
Post::whereRaw('publish_at < NOW()');
SELECT * FROM posts WHERE publish_at < NOW();
或者这个:
Post::whereRaw('TIMESTAMP(publish_date, publish_time) < NOW()');
SELECT * FROM posts WHERE TIMESTAMP(publish_date, publish_time) < NOW();
这些查询在MySQL db上运行良好,但如果我尝试在SQLite内存数据库上测试它们,它们会失败,因为:
no such function: NOW (SQL: ...)
我想保留MySQL函数的优点,但我不想放弃这些测试,也不想创建其他函数来在测试中使用它。
也许有什么鲜为人知的雄辩功能可以解决这些问题?
你知道我怎样才能让它在两个数据库上都工作吗?