date - 使用 DATETIME25.6 格式的 HIVE 日期范围选择
问题描述
我有一个具有这种日期时间戳DATETIME25.6
格式的数据表,如下所示:04JAN2011:05:00:00:000000
如何选择一系列记录,例如,介于January 4, 2011
和之间January 20, 2011
?
解决方案
使用以下方法将日期转换为可比较的格式 ( 'yyyy-MM-dd'
) from_unixtime(unix_timestamp(date, from_format), to_format)
:
... where from_unixtime(unix_timestamp(your_timestamp_column,'ddMMMyyyy:HH:mm:ss:SSSSSS'),'yyyy-MM-dd')
between '2011-01-04' and '2011-01-20'
或者
... where date(from_unixtime(unix_timestamp(your_timestamp_column,'ddMMMyyyy:HH:mm:ss:SSSSSS'))) between '2011-01-04' and '2011-01-20'
推荐阅读
- collision-detection - Cannon.js - 与旋转物体的碰撞不像预期的那样
- sql - 较高和较低数字之间的 SQL
- swift - AppDelegate 类型的值在 swift 4 中没有成员 managedObjectContext
- mysql - 如何使用 MySQL 事件自动插入包含 2 个表的行?
- php - 在同一列上具有多个结果和条件的 SELECT 查询
- java - FileNotFoundException:无法打开 ServletContext 资源 [/WEB-INF/spring-servlet.xml]
- javascript - 处理多个获取的 MySQL 数据时的 JS 问题 [PHP、MySQL 和 JS]
- laravel - “代码”命名空间中没有定义命令
- reactjs - Redux:等待史诗般的动作完成
- windows - 如果存在在批处理文件中不再起作用