【发布时间】:2017-08-20 06:26:10
【问题描述】:
我有一个 Oracle 查询,如下所示:
SELECT ...
FROM ...
WHERE ...
AND to_char(a.bill_Date, 'MMYYYY') = '072017'
...
ORDER BY ...
在 SQL Server 中,我们有 MONTH() 和 YEAR() 函数。
SELECT ...
FROM ...
WHERE ...
AND MONTH(a.BILL_DATE) = MONTH(GETDATE())
AND YEAR(a.BILL_DATE) = YEAR(GETDATE())
...
ORDER BY ...
有没有什么东西可以让我通过一个步骤像 Oracle 对 to_char 那样应用月-年约束?我必须将此参数化并通过一个通用接口保持与两个数据库的兼容性。现在,一个需要两个参数,另一个只需要一个。
【问题讨论】:
-
据我所知没有。与 Oracle 的
TO_CHAR()函数最接近的是 SQL Server 的CONVERT()。但这会生成一个带有日组件的字符串。 -
我从 CONVERT 开始,最后得到了一个复杂的子句。你是对的。
标签: sql-server oracle tsql to-char