web-dev-qa-db-fra.com

Comment obtenir la différence de date en minutes en utilisant Hive

La requête ci-dessous est ma requête de serveur SQL et je veux la convertir en requête Hive:

select DATEDIFF([minute], '19000101', '2013-01-01 10:10:10')
10
displayname

Vous pouvez utiliser unix_timestamp pour les dates après 1970:

SELECT (unix_timestamp('2013-01-01 10:10:10') 
      - unix_timestamp('1970-01-01 00:00:00'))/60 
  1. Convertissez les deux dates en secondes de 1970-01-01
  2. Soustrayez-les
  3. Divisez par 60 pour obtenir des minutes

MODIFIER:

Ajout de minutes: change date to unixtime -> add var * 60sec -> convert back to date

SELECT from_unixtime(unix_timestamp('2013-01-01 10:10:10') + 10 * 60) AS result

démo db <> violon utilisant MySQL

20
Lukasz Szozda