sql - sql teradata 过滤日期 - 数据库版本 Teradata 15.10.06.02 和提供程序版本 Teradata.Net 15.11.0.0
问题描述
我的表有一个日期列。它的数据类型是日期。我去确认了它,table name>>columns
它说MTH_END_DT [DATE, Not NULL]
我想过滤特定日期的数据。如果我提出条件where MTH_END_DT = '6/1/2018'
,我会收到错误select failed [3535] A character string failed conversion to a numeric value.
我关注了这个页面。我用过where MTH_END_DT = date '6/1/2018'
,我得到一个错误syntax error invalid date literal
我试过where cast(timestamp_column as date) = date '2013-10-22';
这样的东西,它也抛出错误
我应该如何过滤我的数据?
解决方案
只有一种可靠的方式来编写日期,使用日期文字,date 'yyyy-mm-dd'
where MTH_END_DT = DATE '2018-06-01'
对于时间戳,它是
TIMESTAMP '2018-06-01 15:34:56'
和时间
TIME '15:34:56'
在 SQL 助手中,建议YYYY-MM-DD
在工具-选项-数据格式-以这种格式显示日期中切换到标准 SQL 格式
推荐阅读
- javascript - 反应应用程序中未定义 Gapi 以访问 google sheet api
- javascript - 未捕获的 TypeError:分配给常量变量
- c# - MVC C# Web 应用程序中的 400 Bad Request 但不是 Postman
- python - tkinter 如何在特定状态下更改按钮的外观/图像(已禁用)
- twilio - 如何将 Dialogflow ES 与 Twilio SMS 集成
- sql - 在另一列中查找最高行号的对应行值
- android - 无法将字符串值分配给扩展中的 gradle 属性
- rust - 使用 Rust Warp 进行跟踪时如何减少噪音?
- firebase - 将 int 数据添加到 Firestore
- node.js - tsheets 文档 - 示例代码不起作用 - 对于所有 POST 方法调用 - Node.js - 应用程序脚本