sql - SQL如何将MM-DD-YYYY字符串值转换为日期
问题描述
我有一个字符串格式的日期时间变量,格式如下:
01-04-2020 11:50:44:569
01-03-2020 12:50:44:589
01-03-2020 01:50:44:579
如何提取日期部分并选择日期范围?
我尝试使用:
cast(substring(value,1,10) as date) as date1
date1 between '2020-01-01' and '2020-01-05'
但它返回 0 条记录。
但是,此代码适用于以下格式的日期时间字符串值:
2020-01-03T11:50:24:529Z
它将提取日期部分并将其存储为时间戳并提取范围内的记录,但不适用于第一个示例。
我只是想找到一种将字符串值转换为日期值的方法,我无意混淆任何人。至于样本数据集,我认为有 3 条记录的问题的第一部分应该足以进行测试,因为同一变量下的所有值都采用相同的格式。
解决方案
看起来该字段只是日期时间格式,我相信简单地转换为日期可能会在这里解决问题:
cast(value as date) between '2020-01-01' and '2020-01-05'
我测试了一个示例字符串,它似乎工作:
DECLARE @date char(25)
SET @date = '01-04-2020 11:50:44:569'
select cast(@date as date)
推荐阅读
- javascript - 当以编程方式更改值时如何在文本输入上触发 onChange 事件 - 反应
- java - 关于伯克利数据结构免费在线课程(CS61B)关于Java中静态变量的教程问题
- django - 如何获取当前登录的用户(来自 auth)并在帖子上显示他的名字
- python - Python,heapq,如何高效修改heapq中的最小元素?
- ios - iOS Swift ARKit 可视化来自 ARWorldMap RawFeaturePoints 的原始特征点
- vb.net - 使用 vb.net 的属性、数组和 ArrayLists
- python - VS Code 中 anaconda 环境的“无法导入”错误
- jquery - 联系表格“姓名”字段验证问题
- python - 遍历 JSON 并转换为 CSV
- javascript - 自动图像悬停效果