-2
votes

Insérer des dates consécutives dans une table existante

J'ai une table vide temp_table avec 2 colonnes, date et id . J'ai besoin de le peuplir avec des dates de 01-janvier-1990 au 31 décembre-2099, puis de convertir la date en chaîne ( yyyymmdd ).

Le format de date peut être n'importe lequel que j'ai juste besoin de le convertir en une chaîne à la fin

Quelqu'un peut-il m'aider s'il vous plaît?

merci, Tom


4 commentaires

Vous devriez aller pour un format de date correct et de la transformer en une chaîne à l'aide d'un format de date approprié lorsque vous appliquez une clause SELECT. Quel SGBD utilisez-vous?


Dans le futur, veuillez lire le Comment demander la section et montrer ce que vous avez essayé, ce que vous avez et ce que vous avez vouloir. J'ai fait une supposition aléatoire ci-dessous, mais cela pourrait être tout à fait faux. Avoir une date comme personnage n'est en général pas une bonne idée, car vous ne pouvez pas faire de calculs de durée avec des variables de caractères.


Pour SQL-Server et MySQL à partir de la version 8, une CTE récursive devrait être utile. Peut-être que cette page vous est utile: the-index-luke.com/blog/2011-07-30/mysql-row-generator


Je suis désolé de ne pas être clair du tout. Je fais cela à Impala et j'ai déjà essayé la boucle alors que la boucle mais ne semble pas y travailler là-bas


3 Réponses :


0
votes

Vous avez vraiment besoin d'essayer quelque chose. Une boucle de faire est tout ce qui est nécessaire ici. xxx


0 commentaires

1
votes

Une autre approche consiste à tout faire dans une étape de données xxx


0 commentaires

0
votes

Je pense que vous avez besoin de dates du 01-01-1990 au 31-12-2099, puis de convertir en chaîne. Vous trouverez ci-dessous la requête pour atteindre cela: Déclarez @startdate date Déclarez @enddate date

SET @StartDate = '1990-01-01' Set @enddate = '2099-12-31'

Sélectionnez Convertir (Varchar (10), DateAdd (jour, NBR -1, @ startDate), 112) Comme date1 de (Sélectionnez Row_Number () sur (commande par c.object_id) comme nbr de sys.columns c ) t où nbr-1 <= daturdediff (jour, @ startdate, @ enddate)


0 commentaires