sql - 过滤具有奇怪格式的日期数据集
问题描述
我有一列由以下格式的日期填充...
purch_dt
8/18/2014
9/27/2014
1/3/2015
10/29/2016
11/5/2016
2/9/2017
3/1/2017
6/29/2017
12/27/2017
2/25/2018
我想过滤数据集以仅包含特定范围内的日期,但是当我尝试在 WHERE purch_dt BETWEEN '3/1/2017' AND '6/29/2017' 之间编码时,我收到错误消息“A字符串转换为数值失败。” 知道如何解决这个问题吗?
解决方案
不是 100% 确定这一点,但至少想提供帮助。我认为,如果您适当地投射该列,它应该可以工作,如下所示:
select *
from my_table
where cast(purch_dt as TIMESTAMP(0) format 'd/m/yyyy')
between date '2017-03-01' AND date '2017-06-29'
无论如何,我强烈建议将日期存储为DATE
而不是VARCHAR
. 存储它们VARCHAR
只是自找麻烦。
推荐阅读
- javascript - 我无法解密我的文本,但我可以加密有人可以检查我的代码吗
- flutter - 错误:必须先分配不可为空的局部变量“newTaskTitle”,然后才能使用它
- java - Jackson JSONGenerator 添加换行符、反斜杠等,并且不按格式化顺序显示给定内容
- php - 通过使用从 JQuery DatePicker 选择的开始日期和结束日期之间的日期比较日期,从 Access 中获取数据
- git - Android Studio 中的 .idea/shelf/Uncommitted_changes_before_Update
- android - 如何在具有 wrap_content 高度的图像视图上添加文本视图覆盖
- flutter - Flutter 卡片布局与设计
- java - 如何通过正则表达式中的字符将字符串拆分为子字符串
- odata - 我正在尝试使用 ODATA 查询表(MYSQL)。但是具有浮点值的长度字段返回 null
- python-3.x - python中默认的min()方法是否使用堆二叉树实现来查找列表中的最小值?