【发布时间】:2020-02-19 19:36:57
【问题描述】:
我有一个字符串格式的日期时间变量,格式如下:
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 条记录应该足以进行测试,因为同一个变量下的所有值都是相同的格式。
【问题讨论】:
-
数据类型是什么?你一直说字符串,但 sql server 中没有这样的数据类型。但这引出了一个问题……为什么要将日期存储为字符数据,而不是使用旨在保存日期的数据类型?
-
我删除了
hive标签,因为这个问题似乎针对sql-server。 -
嗨@GMB,它似乎是蜂巢。 OP 在 OP 的回答下发表评论。
-
正确标记您的问题很重要。看来这毕竟不是sql server的问题。
-
@VBoka:我明白了……这至少可以说是模棱两可的!好的,我删除了我的答案,它仅适用于 SQL Server...