我是新手。我有一个员工表,其中一列指定了加入日期,我想检索过去3个月加入的员工列表。我知道我们可以使用from_unixtime(unix_timestamp())获取当前日期。我如何计算dateiff?在MS SQL中是否有内置的DATEDIFF()函数?请指教!
答案 0 :(得分:39)
datediff(to_date(String timestamp), to_date(String timestamp))
答案 1 :(得分:2)
如果您需要以秒为单位的差异(即:您将日期与时间戳进行比较,而不是整天),您只需转换两个日期或时间戳字符串,格式为'YYYY-MM-DD HH:MM:SS '(或显式指定您的字符串日期格式)使用unix_timestamp(),然后相互减去它们以获得秒的差异。 (然后可以除以60.0得到分钟,或者通过3600.0得到小时等等)
示例:
UNIX_TIMESTAMP('2017-12-05 10:01:30') - UNIX_TIMESTAMP('2017-12-05 10:00:00') AS time_diff -- This will return 90 (seconds). Unix_timestamp converts string dates into BIGINTs.
有关unix_timestamp()的更多信息,包括如何使用不同的日期格式转换字符串:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF#LanguageManualUDF-DateFunctions
答案 2 :(得分:1)
是的,已实施日期;看到: https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
顺便说一下,我通过Google搜索" hive datediff"找到了这个,这是第一个结果;)
答案 3 :(得分:0)
我会先尝试这个
select * from employee where month(current_date)-3 = month(joining_date)