mysql - MYSQL 查询转换为 SQLSERVER
问题描述
大家好,目前正在从事 CODEIGNITER 项目,该项目已从 MYSQL 迁移到 SQL SERVER 2014,关于 SQL SERVER 2014,我只知道基础知识。
我从大约 2 周开始就遇到了问题,我总是尝试搜索和搜索以解决问题,但此时我正在花费太多时间试图找到解决此问题的方法。
我在 MYSQL 上有以下查询
SELECT
*,
UNIX_TIMESTAMP(date) as timestamp
FROM (`module_items`)
JOIN `module_items_news2`
ON `item_id` = `id`
WHERE
`module_id` = '$module_id'
AND $this->site = 1
GROUP BY
date_format(date, '%Y%m')
ORDER BY
`date` DESC
上面的代码适用于 MySQL 数据库。
我正在尝试将其转换为 SQL SERVER,但我在 SQL SERVER 上没有 UNIX_TIMESTAMP 函数。创建函数并尝试修改查询后
DECLARE @module_id VARCHAR(1)
SET @module_id = 3
SELECT *,dbo.UNIX_TIMESTAMP(date) as timestamp
FROM module_items JOIN module_items_news2 ON item_id = id WHERE module_id =
@module_id
GROUP BY date_format(date, '%Y%m')
ORDER BY date DESC
现在我得到
'date_format' is not a recognized built-in function name.
我该如何进行才能使其正常工作?
亲切的问候。
解决方案
您不应该DATE_FORMAT()
在任何一个版本中使用。利用
GROUP BY YEAR(date), MONTH(date)
在两个数据库中。
推荐阅读
- java - 用于异型 json Java 的 Json 反序列化
- php - 将php转换为bash脚本?
- azure-devops - 如何在 Azure-devops-extension 开发中读取外部 json 文件?
- google-cloud-platform - GCP Data Fusion 多表导入
- reactjs - 在映射 ReactJS 中显示/隐藏 div
- intellij-idea - 如果插入符号放置在 PsiElement 前面,我们如何以编程方式获取插入符号的偏移量?
- android - Jetpack compose - 有两个文本填充父级并从表视图开始对齐
- typescript - 使用 Firebase Cloud Functions 读取特定节点的兄弟数据
- php - 防止 PHP 过滤器中的重复
- flutter - 运行我的颤振 Web 应用程序后出现白屏