【问题标题】:Migrating from Oracle to SQL server. Dual table select query -> SQL server从 Oracle 迁移到 SQL Server。双表选择查询 -> SQL server
【发布时间】:2015-10-28 16:25:30
【问题描述】:

我正在从 Oracle 迁移到 sql server 2008。

我对系统中的双表进行了一些查询,

从 DUAL 中选择 TO_CHAR(TRUNC(sysdate, 'DAY')-0,'YYYYMMDD')

由于 SQL Server 中没有 Dual 表,我如何在 SQL Server 上使用 getdate 和 convert 获得相同的结果?

我还听说为双重添加了一个虚拟表,但这对我的查询有用吗?

【问题讨论】:

  • 使用 Dateadd 命令添加/减去日期:SELECT CONVERT(VARCHAR(8), DATEADD(DAY, –7, GETDATE(),112)

标签: sql sql-server oracle sql-server-2008 migration


【解决方案1】:

您可以使用convert() 而没有from 子句:

SELECT REPLACE(CONVERT(VARCHAR(10), getdate(), 121), '-', '')

或使用 112:

SELECT CONVERT(VARCHAR(8), getdate(), 112)

【讨论】:

  • 强调NO FROM CLAUSE。方便的工具包。
【解决方案2】:

在 SQL Server 中FROM TABLE 是可选的,但在 JOIN 和其他带有别名的复杂语法的情况下仍然需要它,这是创建它的最佳方式。

Select 'x' C into dbo.Dual
(1 row affected)

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 2015-04-17
    • 2010-10-14
    • 2011-06-09
    • 2018-11-26
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多