select DATEADD(day,-1,cast(getdate() as date)) as yesterday
from dual;我使用这个查询从日期减去一天,但这在我的sql服务器中显示无效的标识符。你能提出一些替代方案吗?
发布于 2021-12-22 06:42:20
但是这在我的sql服务器中显示了无效的标识符。
无效的标识符错误是因为MS中不存在虚拟表DUAL。
DUAL虚拟表是甲骨文、MySQL 8+和MariaDB的一个特性.
在Server ( table )中,在单行单列表中返回标量的惯用方法是:
SELECT子句的FROM --这在the中是允许的,只需确保在末尾使用分号:
选择DATEADD(日期,-1,CAST( GETDATE()为日期))作为昨天;VALUES() 表构造函数:
选择t.yesterday FROM (值( DATEADD( DATEADD,-1,CAST( GETDATE() AS date) )为t(昨天)- Note that when a `VALUES()` table-constructor is used as an immediate child of a `FROM` clause the entire expression needs to be wrapped in parentheses, which sets it apart from the `VALUES()` syntax seen in `INSERT` and `MERGE` statements.@variable:
声明“昨天日期= DATEADD(日期,-1,CAST( GETDATE()为日期)”;选择“昨天为昨天”;https://stackoverflow.com/questions/70445017
复制相似问题