Convertire una data dal formato TIMESTAMP a numero

di il
6 risposte

Convertire una data dal formato TIMESTAMP a numero

Ciao a tutti
scusate ma ho un pò di confusione in testa. Io ho bisogno di calcolare la differenza tra due date che ho in formato timestamp ( DD/MM/YYYY hh:mm:ss). Vorrei che qualcuno mi indicasse il procedimento per passare dal formato data al formato numerico. Il mio problema è fare la differenza tra due numeri e di valutare una condizione booleana. Chi mi può dare una mano ?
Cordiali saluti a tutti
Walter

6 Risposte

  • Re: Convertire una data dal formato TIMESTAMP a numero

    Ciao,
    puoi fare la differenza tra i due timestamp e poi moltiplicare i vari pezzi per portarli alla risoluzione che cerchi:
    SELECT SYSTIMESTAMP - (SYSTIMESTAMP + 1) ts,
    EXTRACT(DAY FROM (SYSTIMESTAMP - (SYSTIMESTAMP + 1))) giorni,
    EXTRACT(HOUR FROM (SYSTIMESTAMP - (SYSTIMESTAMP + 1))) ore,
    EXTRACT(MINUTE FROM (SYSTIMESTAMP - (SYSTIMESTAMP + 1))) minuti,
    EXTRACT(SECOND FROM (SYSTIMESTAMP - (SYSTIMESTAMP + 1))) secondi
    FROM dual

    Gabriele.
  • Re: Convertire una data dal formato TIMESTAMP a numero

    Se sei in sqlserver usa il comando DATEADD per il calcolo della differenza poi, CAST a DATE così da troncare i dati orari quindi eventualmente un FORMAT a come vuoi mostrarla

    es:
    
    set dateformat 'dmy'
    declare @t1 datetime
    declare @t2 datetime
    
    set @t1 = current_timestamp
    set @t2 = cast('12/11/2019 10:11:12' as datetime)
    
    select t1=@t1, t2=@t2
    
    select case when 
                     month(@t1)<month(@t2) 
                             then concat('mese t1: ', month(@t1) ,'minore mese t2: ',month(@t2)) 
                             else 'vice versa' end 
               as risposta
    puoi provare questo esempio su dbfiddle
  • Re: Convertire una data dal formato TIMESTAMP a numero

    DavideDaSerra ha scritto:


    Se sei in sqlserver usa il comando DATEADD per il calcolo della differenza ...
    la sezione è quella di oracle....


    P.S.
    penso volessi dire DATEDIFF
  • Re: Convertire una data dal formato TIMESTAMP a numero

    Alla fine fanno la stessa cosa: dipende da come si sceglie l'offset (io preferisco dateadd in cui aggiungo -2 mesi)

    Il comando equivalente in Oracle può essere interval
  • Re: Convertire una data dal formato TIMESTAMP a numero

    sspintux ha scritto:


    DavideDaSerra ha scritto:


    Se sei in sqlserver usa il comando DATEADD per il calcolo della differenza ...
    ...
    P.S.
    penso volessi dire DATEDIFF

    DavideDaSerra ha scritto:


    Alla fine fanno la stessa cosa: dipende da come si sceglie l'offset (io preferisco dateadd in cui aggiungo -2 mesi)
    ...
    .... confesso di non aver capito cosa intendi
  • Re: Convertire una data dal formato TIMESTAMP a numero

    ... in realtà hai dagione: dateadd e datediff non fanno la stessa cosa

    datediff calcola la differenza tra due date
    dateadd aggiunge (o toglie) un periodo a una data

    funzione -> parametri = risultato
    dateadd -> oggi + 30 gg = 13/3/2019
    datediff -> 13/3/2019 - oggi = 30 gg
Devi accedere o registrarti per scrivere nel forum
6 risposte