Dans ma base de données SQL Server existante, il y a une colonne comme ceci:valeur de la colonne de texte Convert (12 heures) à 24 heures de la colonne varchar dans SQL Server
- Nom de la colonne et le type:
meeting_time varchar(22)
- Valeurs stocké dans un format différent comme
02:30:PM/2:30:PM/14:00:AM/10:00:00:AM/9:2:PM
Je fais des travaux liés à la migration. Dans la base de données existante, ce type de valeurs était stocké. Je veux convertir ceux-ci en format de 24 heures.
Lorsque j'ai essayé avec la commande stuff avec la combinaison de IIF. Il continue d'augmenter et je ne sais pas si le dernier db a d'autres valeurs. Depuis l'application existante, les valeurs peuvent être saisies par l'utilisateur et stockées dans la base de données.
Quelqu'un peut-il m'aider s'il vous plaît?
Merci d'avance.
Le problème réel est que vous stockez les heures sous forme de chaînes au lieu des valeurs 'time'. La base de données ne devrait pas se soucier de la mise en forme, cela devrait être laissé à l'application * client *. Seule l'application cliente sait comment l'utilisateur final souhaite afficher les heures. En fait, le client peut vouloir changer de format simplement en changeant un paramètre. –
Vous pouvez convertir toutes ces valeurs en temps s'il n'y avait pas de ':' avant 'PM', par exemple' select cast ('02: 30 PM 'comme time) 'et' select cast ('9: 2 PM' comme heure) 'travail. '14: 00: AM' n'est pas une heure valide. Est-ce une valeur réelle? Est-ce que 'AM' est traité comme indésirable dans ce cas? Si c'est le cas, vous devrez nettoyer ces données bizarres avant de convertir en 'time' ou tout autre format de texte –