首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用函数DateAdd的SQL查询

问不使用函数DateAdd的SQL查询
EN

Stack Overflow用户
提问于 2021-12-22 06:24:20
回答 1查看 1.1K关注 0票数 -2
代码语言:javascript
复制
select DATEADD(day,-1,cast(getdate() as date)) as yesterday 
from dual;

我使用这个查询从日期减去一天,但这在我的sql服务器中显示无效的标识符。你能提出一些替代方案吗?

EN

回答 1

Stack Overflow用户

发布于 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(昨天)
代码语言:javascript
复制
- 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.
  • 使用T @variable: 声明“昨天日期= DATEADD(日期,-1,CAST( GETDATE()为日期)”;选择“昨天为昨天”;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70445017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档