web-dev-qa-db-fra.com

Presto SQL - Conversion d'une chaîne de date au format de date

Je suis sur presto et j'ai une date au format varchar qui ressemble à - 

7/14/2015 8:22:39 AM

J'ai consulté la documentation de presto et essayé diverses choses (cast, date_format, utilisation de split_part pour l'analyse puis la conversion) et je ne parviens pas à le convertir au format de date que je peux utiliser avec des fonctions telles que date_diff.

J'ai essayé:

cast(fieldname as timestamp)
date_format(fieldname, '%Y-%m-%d %T)

Les deux me donnent une erreur comme ça 

'Value cannot be cast to timestamp: 3/31/2016 6:05:04 PM'

Comment puis-je convertir cela?

14
Moosa

Je l'ai compris. Ce qui suit fonctionne en convertissant au format de date 24 heures.

select date_parse('7/22/2016 6:05:04 PM','%m/%d/%Y %h:%i:%s %p')
21
Moosa

DateID converti ayant la date au format Int au format de date: Requête Presto

Select CAST(date_format(date_parse(cast(dateid as varchar(10)), '%Y%m%d'), '%Y/%m-%d') AS DATE)
from
     Table_Name
limit 10;
1
Rajiv Singh

La norme SQL 2003 définit le format comme suit:

<unquoted timestamp string> ::= <unquoted date string> <space> <unquoted time string>
<date value> ::= <years value> <minus sign> <months value> <minus sign> <days value>
<time value> ::= <hours value> <colon> <minutes value> <colon> <seconds value>

Il existe certaines définitions entre ces liens, mais YYYY-MM-DD HH:MM:SS avec l'option .mmm millisecondes facultative est nécessaire pour fonctionner sur toutes les bases de données SQL.

0
coladict

Utilisez: cast(date_parse(inv.date_created,'%Y-%m-%d %h24:%i:%s') as date)

Entrée: String timestamp

Sortie: date format 'yyyy-mm-dd'

0
VINOD KUMAR KEDARNATH