Comment puis-je bande la date d'envoi à un datetime chaîne dans SQL SSIS?
Je travaille sur un projet d'entrepôt de données et voudrais savoir comment (de préférence dans une Colonne Dérivée de la composante dans un flux de Données) bande de la date de la pièce hors de SQL datetime enregistrement.
Une fois que j'ai datetime converti à peu de temps, je vais faire une recherche sur le temps de trouver le temps d'enregistrer dans une table de dimension de temps.
Quelqu'un peut me donner une fonction simple à accomplir ce à l'intérieur d'une transformation de la colonne dérivée?
Exemple: Transformer un datetime comme "12/02/2008 11:32:21 AM" en tout simplement "11:32:21 AM".
OriginalL'auteur rrydman | 2009-05-09
Vous devez vous connecter pour publier un commentaire.
Je voudrais juste faire un cast pour
DT_DBTIME
type (à l'aide de transformation de la Colonne Dérivée, ou de Convertir le type de transformation).DT_DBTIME
contient seulement (heures, minutes, secondes) la partie de la date/de l'heure, de sorte que vous aurez à se débarrasser de la partie de la date.Cela a fonctionné, j'ai dû faire deux conversions de données (un à DT_DBTIME puis une à DT_STR) de sorte qu'il semble genre de maladroit, mais il fonctionne.
OriginalL'auteur Michael
Si vous avez besoin de faire cela dans une variable de l'expression de Michael solution ne fonctionne pas, mais vous pouvez utiliser l'expression suivante:
(DT_DBDATE) convertit la date et l'heure pour un jour seulement. Mais le nouveau type de données n'est pas compatiple avec SSIS de datetime. Par conséquent, vous aurez à utiliser (DT_DATE) pour la conversion d'un type compatible.
Courtoisie de cette solution appartient à Russel Loski qui a publié dans son blog:
http://www.bidn.com/blogs/RussLoski/ssas/1458/converting-datetime-to-date-in-ssis
Ne pas répondre à la question initiale, mais m'a aidé à comprendre comment faire pour convertir mes pleine longueur datetime au format approprié pour la base de données de l'insertion. Merci pour ça 🙂
OriginalL'auteur adlareg
En fait, si vous inversez les 2 premières expressions comme ceci:
(DT_DBDATE)(DT_DATE)GETDATE()
au lieu de
(DT_DATE)(DT_DBDATE)GETDATE()
, alors vous aurezTRUNCATE
le temps passé hors du champ de date.Si le
DT_DATE
expression est avant leDT_DBDATE
expression, vous aurez encore le temps de votre sortie, mais il sera remis à tous les zéros.OriginalL'auteur BlackRacerBoy
Rencontré ce avec la rédaction d'un rapport pour une planification d'application, nécessaires le temps qui a été stockée en tant que partie d'un type de données datetime. J'ai formaté le datetime comme 0, ce qui vous donne cette mon dd yyyy hh:miAM (ou PM), et n'a tout simplement une sous-chaîne de celle qui a renvoyé le temps que dans un format AM/PM.
Exemple ci-dessous.
OriginalL'auteur Eric
Personnellement, j'utilise une série de fonctions pour cela. E. g.:
J'aimerais demander tous les crédits, mais il faut vraiment aller à ce mec.
Peut-être le fait que 3 personnes ont fait la même erreur suggère que c'était une erreur facile à faire.
OriginalL'auteur CJM