正在从 Oracle 迁移到 SQL 服务器。双tableselect查询->SQL服务器

Migrating from Oracle to SQL server. Dual table select query -> SQL server

我要从 Oracle 迁移到 sql 服务器 2008。

我在我的系统中查询了双 table,

SELECT TO_CHAR(TRUNC(sysdate, 'DAY')-0,'YYYYMMDD') FROM DUAL

由于 SQL 服务器中没有 Dual table,我怎样才能在 SQL 服务器上使用 getdate with convert 获得相同的结果?

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

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

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

或使用 112:

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

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

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