0
votes

Fonctionnement de la date SQL standard

J'essaie de migrer vers SQL standard et de lire une partie de la documentation sur les fonctions de la date, mais je suis toujours un peu confus quant à la manière de procéder à une certaine requête.

Ma requête SQL actuelle Legacy est ci-dessous: p>

LEGACYSQL H1>
select
date,
round(sum(revenue_total),2) as revenue
from [project:dataset.table]
where month(date) = month(date_add(current_date(),-1,'month'))
group by 1


1 commentaires

Si je comprends votre question, vous voulez faire de cette conformité ANSI SQL? Si oui, je pense que extrait est ce que vous voulez: extrait (mois à partir de .


4 Réponses :


0
votes

En ce qui concerne les fonctions de date à la main, il existe des fonctions équivalentes dans BG's SQL standard

  • mois () -> extrait (): extrait (pièce de date_expression) , par ex. XXX

  • date_add () et actuel_date () est toujours disponible.


0 commentaires

1
votes

Vous voulez probablement: xxx

Je soupçonne que votre colonne est en réalité de type horodatage , auquel cas tu as besoin de Convertir en une date d'abord: xxx

Notez que la fonction extrait a un en option " / CODE> CLAUSE, qui vous permet de spécifier le fuseau horaire à utiliser si vous ne souhaitez pas utiliser la valeur par défaut, qui est UTC. Voir le Documentation de la fonction Timeestamp pour plus d'informations. < / p>


0 commentaires

0
votes

Suivez un exemple avec le référentiel public GITUB:

SELECT
  CAST(committer.date AS DATE),
  COUNT(*)
FROM
  `bigquery-public-data.github_repos.commits`
WHERE
  EXTRACT(MONTH FROM CAST(committer.date AS DATE)) = EXTRACT(MONTH FROM (DATE_SUB(CURRENT_DATE(), INTERVAL 1 MONTH)))

GROUP BY
  1
LIMIT
  10


0 commentaires

0
votes

Je suppose que vous voulez vraiment: xxx pré>

Cependant, ce que vous avez écrit ne prend pas l'année en compte, ce serait donc: P>

where extract(month from date) = extract(month from current_date) - 1


0 commentaires