Hive中日期与时间戳的转换

来源:互联网 发布:天天源码 编辑:程序博客网 时间:2024/05/17 18:43

什么是时间戳?

时间戳是指**格林尼治时间**1970年01月01日00时00分00秒(北京时间1970年01月01日时00分00秒)起至现在的总秒数。

注意:不管你在地球上的任何地方,这一时刻的时间戳是相同的。但是!同一个时间戳在不同的时区会表示不同的时间。比如在集群上通过hive函数转换的是北京时间,但是在本地python转换就成了美国的时间。可能是根据配置不同?(猜),但是在数据处理过程中一定要看清楚。(2017.11.21添加)

时间戳=>指定格式的日期

# timestamp是时间戳# 如果timestamp原先是毫秒,则我们/1000后,会自动转换成double类型,但是主要from_unixtime要求第一个参数需要为bigint类型,所以我们需要用cast进行类型转换。# 语法from_unixtime(bigint unixtime[, stringformat])select from_unixtime(timestamp, 'yyyy-MM-dd HH:mm:ss') from test_table

指定格式日期=>时间戳

# 如果不写第二个参数,默认格式是 yyyy-MM-dd HH:mm:ssselect unix_timestamp('20170101 13:20:30', 'yyyyMMdd HH:mm:ss') from test_table

时间=>日期

# 只能接受这种形式select to_date('2017-01-01 13:20:30') from test_table

日期=>年/月/日/时/分/秒

# year(), month(), day(), hour(), minute(), second()# week() 返回日期所在的星期数select year('2017-01-01 13:20:30') from test_table

日期比较

# 返回结束日期减去开始日期的天数# 语法:datediff(string enddate, string startdate)select datediff('2017-01-31', '2017-01-1') from test_table

日期加减

# 语法:date_add(string startdate, int days)select date_add('2017-01-01', 10) from test_tableselect date_sub('2017-01-01', 10) from test_table
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 商标被别人申请无效宣告怎么办 淘宝上传宝贝没有品牌怎么办 萌虎白卡借款2000逾期了怎么办 最里面的牙齿烂了怎么办 金龙沉底不游怎么办 龙鱼尾巴烂了怎么办 微博忘了登录名和密码怎么办 新浪微博密码忘了怎么办 vivo手机用户密码忘了怎么办 微博登录名忘记了怎么办 微信忘记密码钱怎么办 微信密码申诉失败怎么办 微博密码被盗了怎么办 对公密码器丢了怎么办 手机qq忘记旧密码怎么办 qq旧密码忘记了怎么办 微博账户密码忘记了怎么办 三星盖乐世s3忘记密码了怎么办 微博登录密码忘记了怎么办 助学贷款密码忘了怎么办 助学贷款的密码忘了怎么办 助学贷款登录密码忘了怎么办 抖音换了手机登不了怎么办 微信忘记密码申诉失败怎么办 银行卡短信通知没了怎么办 斗鱼手机号被绑定了怎么办 网易邮箱不记得账号怎么办 qq号被盗申诉不回来怎么办 号被盗了申诉不回来怎么办 富士康离职后工资卡号没填怎么办? 填高考志愿时没填电话号码怎么办 铁路12306密码忘了怎么办 微销通提示网络请求失败怎么办 苹果手机出现不停播报情况怎么办 手做俯卧撑抬不起来怎么办 如果qq号被冻结了怎么办 买的qq号被冻结怎么办 联想平板怎么下载东西怎么办 所有浏览器都安装不了怎么办 忘记微博登录邮箱怎么办 丰巢验证码丢了怎么办