Funzioni di conversione conversion-functions
Le funzioni di conversione consentono di trasformare i dati da un tipo all’altro all’interno delle espressioni di percorso. Queste funzioni sono essenziali per garantire la compatibilità dei dati e una corretta gestione del tipo quando si lavora con origini dati e operazioni diverse.
Utilizza le funzioni di conversione quando devi:
- Converti i valori stringa in tipi numerici, booleani o di data (toInteger, toDecimal, toBool)
- Trasforma date e ore tra formati e rappresentazioni diversi (toDateTime, toDateTimeOnly, toDateOnly)
- Cast valori numerici tra tipi integer e decimal (toInteger, toDecimal)
- Converti i valori in formato stringa (toString) o durata (toDuration)
- Garantire la compatibilità dei tipi per confronti e operazioni
- Elabora dati provenienti da origini esterne che possono avere formati di tipo diversi
Ogni funzione di conversione gestisce in automatico regole e casi edge specifici del tipo, rendendo la trasformazione dei dati più affidabile e prevedibile nelle espressioni di percorso.
Riferimento rapido quick-reference
toDateTime quando il fuso orario è importante (ad esempio, pianificazione dei messaggi, confronto di marche temporali evento tra aree geografiche). Utilizzare toDateTimeOnly quando è rilevante solo la data/ora locale e il fuso orario può essere ignorato (ad esempio, confrontando le date del calendario in una condizione).Insidie comuni pitfalls
- Il fuso orario deve essere una costante stringa. L’argomento del fuso orario in
toDateTimenon può essere un riferimento di campo o un’espressione dinamica. Passare sempre una stringa letterale come"UTC"o"Europe/Paris". - Formato ISO-8601 richiesto per gli input di stringhe — Quando si passa una stringa a
toDateTimeotoDateTimeOnly, assicurarsi che segua il formato ISO-8601 (ad esempio,"2023-08-18T23:17:59.123Z"). Le stringhe non valide restituiscono null senza un errore. - I valori dell’epoca sono espressi in millisecondi.
toDateTime(1560762190189)prevede millisecondi. Se l’origine fornisce marche temporali Unix in secondi, moltiplicarle per 1000 (ad esempio,toDateTime(myField * 1000)). - toBool con stringhe impreviste —
toBoolrestituiscetruesolo se il valore della stringa è esattamente"true". Qualsiasi altra stringa (inclusi"1","yes","TRUE") restituiscefalse.
toBool toBool
Converte un valore di argomento in un valore booleano, a seconda del tipo.
- Da stringa: prova a convertire il valore stringa come booleano; da “true” se il valore stringa è “true”; in caso contrario false
- Dal valore numerico: true se il valore numerico non è uguale a 0, false in caso contrario
toBool(<parameter>)- decimale
- booleano
- stringa
- intero
toBool(<decimal>)
toBool(<boolean>)
toBool(<string>)
toBool(<integer>)
Restituisce un valore booleano.
toBool("true")
toBool(1)
Restituisce true.
toBool("this is not a boolean")
Restituisce false.
toDateOnly toDateOnly
Converte un argomento in un valore di tipo dateOnly. Per ulteriori informazioni sui tipi di dati, consulta questa sezione.
toDateOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Tipo |
| Rappresentazione stringa di una data come “AAAA-MM-GG” (formato XDM). Supporta anche il formato ISO-8601: viene considerata solo la parte full-date (consultare RFC 3339, sezione 5.6 | stringa |
| data e ora | dateTime |
| data e ora senza fuso orario | dateTimeOnly |
| valore intero di un’epoca in millisecondi | intero |
toDateOnly(<dateTime>)
toDateOnly(<dateTimeOnly>)
toDateOnly(<string>)
toDateOnly(<integer>, <integer>, <integer>)
Restituisce un valore di tipo dateOnly.
toDateOnly("2023-08-18")
toDateOnly("2023-08-18T00:00:00.000Z")
toDateOnly("2023-08-18T00:00:00")
tutti restituiscono un oggetto dateOnly che rappresenta il 18 agosto 2023.
toDateOnly(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate})
Restituisce un valore dateOnly.
toDateTime toDateTime
Converte i parametri in un valore di data e ora, a seconda del tipo.
toDateTime(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | data e ora nel formato ISO-8601. Una rappresentazione stringa di un datetime con informazioni sul fuso orario |
| stringa | id del fuso orario. Un identificatore del fuso orario (ad esempio, “UTC”, “Europa/Parigi”) |
| dateOnly | rappresenta una data senza fuso orario, visualizzata come anno-mese-giorno |
| dateTimeOnly | rappresenta un datetime senza fuso orario, visualizzato come anno-mese-giorno-ora-minuto-secondo-millisecondo |
| intero | valore intero di un’epoca in millisecondi |
toDateTime(<string>)
toDateTime(<string>, <dateOnly>)
toDateTime(<string>, <dateTimeOnly>)
toDateTime(<integer>)
Restituisce un valore dateTime.
toDateTime("2023-08-18T23:17:59.123Z")
Restituisce 2023-08-18T23:17:59.123Z
La stringa ISO-8601 include già informazioni sul fuso orario.
toDateTime("Europe/Paris", toDateOnly("2023-08-18"))
Restituisce 2023-08-18T00:00:00.000+02:00
Questo crea un dateTime combinando un fuso orario con un valore solo data. L’ora è impostata su mezzanotte (00:00:00) nel fuso orario specificato.
toDateTime("UTC", toDateTimeOnly("2023-08-18T23:17:59.123"))
Restituisce 2023-08-18T23:17:59.123Z
Viene creato un valore dateTime applicando un fuso orario a un valore dateTimeOnly (che non contiene informazioni sul fuso orario).
toDateTime(1560762190189)
Restituisce 2019-06-17T09:03:10.189Z
Converte una marca temporale Unix in millisecondi in un valore dateTime.
toDateTimeOnly toDateTimeOnly
Converte un valore di argomento in un valore di sola data e ora.
toDateTimeOnly(<parameters>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora in formato ISO-8601 o “AAAA-MM-GG” (formato data XDM) | stringa |
| data e ora | dateTime |
toDateTimeOnly(<dateTime>)
toDateTimeOnly(<string>)
Restituisce un valore datetime senza considerare il fuso orario.
toDateTimeOnly ("2023-08-18")
restituisce un valore dateTime che rappresenta 2023-08-18T00:00:00.000
toDateTimeOnly(now())
toDecimal toDecimal
Converte un valore di argomento in un valore decimale, a seconda del tipo.
toDecimal(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | converte il valore stringa come decimale |
| dateTime | converte la data in millisecondi (millisecondi epoca) |
| booleano | converte il valore booleano come 1 se true, 0 se false |
| intero | converte in decimale (esempio: 1 diventa 1,0) |
toDecimal(<integer>)
toDecimal(<decimal>)
toDecimal(<string>)
toDecimal(<boolean>)
Restituisce un decimale.
toDecimal("4.0")
Restituisce 4,0.
toDuration toDuration
Converte un valore di argomento in una durata. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
toDuration(<parameter>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | formati basati sul formato di durata ISO-8601 PnDTnHnMn.nS con giorni considerati esattamente 24 ore |
| intero | numero di millisecondi |
Espressione stringa: i formati accettati sono basati sul formato di durata ISO-8601 PnDTnHnMn.nS con giorni considerati esattamente 24 ore.
La stringa inizia con un segno facoltativo, indicato dal simbolo ASCII negativo o positivo. Se negativo, l’intero periodo viene ignorato. La lettera ASCII “P” è successiva in maiuscolo o in minuscolo. Ci sono poi quattro sezioni, ciascuna composta da un numero e un suffisso. Le sezioni hanno suffissi in ASCII di “D”, “H”, “M” e “S” per giorni, ore, minuti e secondi, accettati in maiuscolo o minuscolo. I suffissi devono essere disposti in ordine. La lettera ASCII “T” deve precedere la prima occorrenza, se presente, di un’ora, un minuto o una seconda sezione. Deve essere presente almeno una delle quattro sezioni e, se “T” è presente, deve esserci almeno una sezione dopo la “T”. La parte numerica di ogni sezione deve essere costituita da una o più cifre ASCII. Il numero può essere preceduto dal simbolo ASCII negativo o positivo. Il numero di giorni, ore e minuti deve essere analizzato in lungo. Il numero di secondi deve essere analizzato insieme alla frazione facoltativa. Il punto decimale può essere un punto o una virgola. La parte frazionaria può avere da zero a 9 cifre.
toDuration(<string>)
toDuration(<integer>)
Restituisce una durata.
toDuration("PT10H")
Restituisce una durata di 10 ore.
toDuration("PT4S")
Restituisce una durata di 4 secondi.
toDuration(4000)
Restituisce una durata di 4 secondi.
toInteger toInteger
Converte un valore di argomento in un numero intero.
toInteger(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | converte il valore stringa come numero intero |
| dateTime | converte la data in millisecondi (millisecondi epoca) |
| decimale | converte in numero intero rimuovendo la parte decimale (ad esempio: 1,5 diventa 1) |
| booleano | converte il valore booleano come 1 se true, 0 se false |
toInteger(<dateTime>)
toInteger(<decimal>)
toInteger(<integer>)
toInteger(<string>)
toInteger(<boolean>)
Restituisce un numero intero.
toInteger("4")
Restituisce 4.
toString toString
Converte un valore di argomento in un valore stringa, a seconda del tipo. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
toString(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 6-row-2 | |
|---|---|
| Parametro | Descrizione |
| dateTime | converte la data nel formato data UTC |
| dateTimeOnly | converte la data nel formato data UTC |
| durata | convertire nel numero di millisecondi corrispondente come stringa |
| intero | converte in rappresentazione stringa del valore (1 diventa “1”) |
| decimale | converte in rappresentazione stringa del valore (1,5 diventa “1,5”) |
| booleano | converti il valore booleano come ‘true’ se true, ‘false’ se false |
toString(<dateTimeOnly>)
toString(<dateTime>)
toString(<duration>)
toString(<boolean>)
toString(<integer>)
toString(<decimal>)
Restituisce una stringa.
toString(4)
Restituisce “4”.
toString(#{ExperiencePlatform.test_date.person.birthDate}))
Restituisce la rappresentazione in forma di stringa del campo dataOnly specificato (campo Data XDM), ad esempio “2023-08-18”.
toString(toDuration(1520))
Restituisce “PT1.52S”.
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina sono documentate tutte le funzioni di conversione nelle espressioni di percorso di AJO e viene spiegato come trasformare i valori tra tipi quali stringa, intero, decimale, booleano, data, datetime e duration.
Intenti:
- Convertire una stringa o un numero intero epoca in un valore datetime che tenga conto del fuso orario utilizzando
toDateTime - Convertire una stringa o datetime in un datetime senza fuso orario utilizzando
toDateTimeOnly - Estrarre un valore solo data (anno-mese-giorno) da una stringa o datetime utilizzando
toDateOnly - Eseguire il cast di un valore su un numero intero, decimale o booleano utilizzando
toInteger,toDecimalotoBool - Serializzare qualsiasi valore nella relativa rappresentazione di stringa utilizzando
toString - Convertire una stringa o un numero intero in millisecondi in una durata utilizzando
toDuration
Glossario:
- dateTime: valore datetime che include informazioni di scostamento fuso orario (specifico per prodotto)
- dateTimeOnly: valore datetime senza informazioni sul fuso orario (specifico per prodotto)
- dateOnly: valore data che rappresenta anno-mese-giorno senza componente ora (specifico per prodotto)
- durata: un periodo di tempo espresso nel formato ISO-8601 (ad esempio, PT10H) (specifico per prodotto)
- millisecondi epoca: timestamp Unix espresso in millisecondi dal 1970-01-01T00:00:00Z
Guardrail:
- L’argomento del fuso orario in
toDateTimedeve essere una costante stringa. I riferimenti ai campi e le espressioni dinamiche non sono consentiti - Gli input di stringhe a
toDateTimeetoDateTimeOnlydevono seguire il formato ISO-8601; le stringhe non valide restituiscono null senza un errore toDateTimecon un numero intero epoca prevede millisecondi; moltiplica i timestamp basati su secondi per 1000 prima del passaggiotoBoolrestituiscetruesolo per la stringa esatta"true"; stringhe come"1","yes"o"TRUE"restituisconofalse
Terminologia:
- Nome canonico: Funzioni di conversione — Acronimo: none — Varianti: funzioni di colata di tipo, funzioni di conversione di tipo
- Sinonimi: “toDateTime” = “convert to datetime with timezone”; “toDateTimeOnly” = “convert to datetime without timezone”
- Non confondere: “toDateTime” (in base al fuso orario) ≠ “toDateTimeOnly” (senza fuso orario)
- Non confondere: “toDateOnly” (solo data, nessuna ora) ≠ “toDateTime” (data e ora con fuso orario)
Domande frequenti:
- Q: quando dovrei usare
toDateTimerispetto atoDateTimeOnly? — UtilizzaretoDateTimequando le informazioni sul fuso orario sono importanti (ad esempio, pianificazione o confronti tra aree geografiche diverse); utilizzaretoDateTimeOnlyquando è rilevante solo la data/ora locale e il fuso orario può essere ignorato. - Q: perché
toBool("TRUE")restituisce false? —toBoolriconosce solo la stringa minuscola esatta"true"; tutti gli altri valori stringa inclusi"TRUE"o"yes"restituiscono false. - Q: come si converte una marca temporale Unix in secondi in una data/ora? — Moltiplica il valore di secondi per 1000 per ottenere millisecondi, quindi passalo a
toDateTime, ad esempiotoDateTime(myField * 1000). - Q: è possibile leggere il fuso orario in
toDateTimeda un attributo di profilo? — No, l’ID del fuso orario deve essere una costante stringa; i riferimenti e le espressioni di campo non sono supportati. - D: quale formato
toDurationaccetta come stringa? — Formato della durata ISO-8601, ad esempio"PT10H"per 10 ore o"P1DT2H"per 1 giorno e 2 ore.