Funzioni di data - Amazon Simple Storage Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzioni di data

Amazon S3 Select supporta le seguenti funzioni di data.

DATE_ADD

Dati una parte di data, una quantità e un timestamp, restituisce un timestamp aggiornato modificando la parte di data in base alla quantità.

Sintassi

DATE_ADD( date_part, quantity, timestamp )

Parametri

date_part

Specifica la parte di data da modificare. Può essere una delle seguenti:

  • anno

  • mese

  • giorno

  • ora

  • minuti

  • secondo

quantity

Il valore da applicare al timestamp aggiornato. I valori positivi per quantity vengono aggiunti a date_part del timestamp, mentre i valori negativi vengono sottratti.

timestamp

Il timestamp di destinazione su cui viene eseguita la funzione.

Esempi

DATE_ADD(year, 5, `2010-01-01T`) -- 2015-01-01 (equivalent to 2015-01-01T) DATE_ADD(month, 1, `2010T`) -- 2010-02T (result will add precision as necessary) DATE_ADD(month, 13, `2010T`) -- 2011-02T DATE_ADD(day, -1, `2017-01-10T`) -- 2017-01-09 (equivalent to 2017-01-09T) DATE_ADD(hour, 1, `2017T`) -- 2017-01-01T01:00-00:00 DATE_ADD(hour, 1, `2017-01-02T03:04Z`) -- 2017-01-02T04:04Z DATE_ADD(minute, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:05:05.006Z DATE_ADD(second, 1, `2017-01-02T03:04:05.006Z`) -- 2017-01-02T03:04:06.006Z

DATE_DIFF

Dati una parte di data e due timestamp validi, DATE_DIFF restituisce la differenza in parti di data. Il valore restituito è un numero intero negativo quando il valore date_part di timestamp1 è maggiore del valore date_part di timestamp2. Il valore restituito è un numero intero positivo quando il valore date_part di timestamp1 è minore del valore date_part di timestamp2.

Sintassi

DATE_DIFF( date_part, timestamp1, timestamp2 )

Parametri

date_part

Specifica la parte dei timestamp da confrontare. Per la definizione di date_part, consulta DATE_ADD.

timestamp1

Il primo timestamp da confrontare.

timestamp2

Il secondo timestamp da confrontare.

Esempi

DATE_DIFF(year, `2010-01-01T`, `2011-01-01T`) -- 1 DATE_DIFF(year, `2010T`, `2010-05T`) -- 4 (2010T is equivalent to 2010-01-01T00:00:00.000Z) DATE_DIFF(month, `2010T`, `2011T`) -- 12 DATE_DIFF(month, `2011T`, `2010T`) -- -12 DATE_DIFF(day, `2010-01-01T23:00`, `2010-01-02T01:00`) -- 0 (need to be at least 24h apart to be 1 day apart)

EXTRACT

Dati una parte di data e un timestamp, EXTRACT restituisce il valore della parte di data del timestamp.

Sintassi

EXTRACT( date_part FROM timestamp )

Parametri

date_part

Specifica la parte dei timestamp da estrarre. Può essere una delle seguenti:

  • YEAR

  • MONTH

  • DAY

  • HOUR

  • MINUTE

  • SECOND

  • TIMEZONE_HOUR

  • TIMEZONE_MINUTE

timestamp

Il timestamp di destinazione su cui viene eseguita la funzione.

Esempi

EXTRACT(YEAR FROM `2010-01-01T`) -- 2010 EXTRACT(MONTH FROM `2010T`) -- 1 (equivalent to 2010-01-01T00:00:00.000Z) EXTRACT(MONTH FROM `2010-10T`) -- 10 EXTRACT(HOUR FROM `2017-01-02T03:04:05+07:08`) -- 3 EXTRACT(MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 4 EXTRACT(TIMEZONE_HOUR FROM `2017-01-02T03:04:05+07:08`) -- 7 EXTRACT(TIMEZONE_MINUTE FROM `2017-01-02T03:04:05+07:08`) -- 8

TO_STRING

Dati un timestamp e un pattern di formato, TO_STRING restituisce una rappresentazione in formato stringa del timestamp fornito nel formato specificato.

Sintassi

TO_STRING ( timestamp time_format_pattern )

Parametri

timestamp

Il timestamp di destinazione su cui viene eseguita la funzione.

time_format_pattern

Una stringa che ha le seguenti interpretazioni di caratteri speciali.

Formato

Esempio

Descrizione

yy

69

Anno a 2 cifre

y

1969

Anno a 4 cifre

yyyy

1969

Anno a 4 cifre con l'aggiunta di zero

M

1

Mese dell'anno

MM

01

Mese dell'anno con l'aggiunta di zero

MMM

Jan

Nome abbreviato del mese dell'anno

MMMM

January

Nome completo del mese dell'anno

MMMMM

J

Prima lettera del mese dell'anno (NOTA: questo formato non è utilizzabile con la funzione TO_TIMESTAMP.)

d

2

Giorno del mese (1-31)

dd

02

Giorno del mese con l'aggiunta di zero (01-31)

a

AM

AM o PM

h

3

Ora del giorno (1-12)

hh

03

Ora del giorno con l'aggiunta di zero (01-12)

H

3

Ora del giorno (0-23)

HH

03

Ora del giorno con l'aggiunta di zero (00-23)

m

4

Minuto dell'ora (0-59)

mm

04

Minuto dell'ora con l'aggiunta di zero (00-59)

s

5

Secondo del minuto (0-59)

ss

05

Secondo del minuto con l'aggiunta di zero (00-59)

S

0

Frazione di secondo (precisione: 0,1, intervallo: 0,0-0,9)

SS

6

Frazione di secondo (precisione: 0,01, intervallo: 0,0-0,99)

SSS

60

Frazione di secondo (precisione: 0,001, intervallo: 0,0-0,999)

SSSSSSSSS

60000000

Frazione di secondo (precisione massima: 1 nanosecondo, intervallo: 0,0-0,999999999)

n

60000000

Nano di secondo

X

+07 o Z

Offset in ore o Z se l'offset è 0

XX o XXXX

+0700 o Z

Offset in ore e minuti o Z se l'offset è 0

XXX o XXXXX

+07:00 o Z

Offset in ore e minuti o Z se l'offset è 0

x

7

Offset in ore

xx o xxxx

700

Offset in ore e minuti

xxx o xxxxx

+07:00

Offset in ore e minuti

Esempi

TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y') -- "July 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'MMM d, yyyy') -- "Jul 20, 1969" TO_STRING(`1969-07-20T20:18Z`, 'M-d-yy') -- "7-20-69" TO_STRING(`1969-07-20T20:18Z`, 'MM-d-y') -- "07-20-1969" TO_STRING(`1969-07-20T20:18Z`, 'MMMM d, y h:m a') -- "July 20, 1969 8:18 PM" TO_STRING(`1969-07-20T20:18Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00Z`, 'y-MM-dd''T''H:m:ssX') -- "1969-07-20T20:18:00Z" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXX') -- "1969-07-20T20:18:00+0800" TO_STRING(`1969-07-20T20:18+08:00`, 'y-MM-dd''T''H:m:ssXXXXX') -- "1969-07-20T20:18:00+08:00"

TO_TIMESTAMP

Data una stringa, TO_TIMESTAMP la converte in un timestamp. TO_TIMESTAMP è l'operazione inversa di TO_STRING.

Sintassi

TO_TIMESTAMP ( string )

Parametri

string

La stringa di destinazione su cui viene eseguita la funzione.

Esempi

TO_TIMESTAMP('2007T') -- `2007T` TO_TIMESTAMP('2007-02-23T12:14:33.079-08:00') -- `2007-02-23T12:14:33.079-08:00`

UTCNOW

Restituisce l'ora corrente in UTC come timestamp.

Sintassi

UTCNOW()

Parametri

UTCNOW non prende parametri.

Esempi

UTCNOW() -- 2017-10-13T16:02:11.123Z