0
votes

SQL - définissez temporairement la date par défaut lors de l'analyse de temps en tant que DateTime dans SSMS

Si je fais

20-08-2019 11:00
20-08-2019 11:05
20-08-2019 11:10


4 commentaires

«J'ai besoin d'utiliser l'analyse comme je ne suis pas sûr des formats Les dates seront dans" Comment vous attendez-vous à interpréter la chaîne suivante? 01-02-2019 10:23:30 ? Je peux penser à au moins 4 valeurs différentes de DateTime que cette chaîne peut être convertie, aucune d'entre elles n'a de priorité sur l'autre. Alors, que serait-il - 10h ou 22h? Janvier Deuxième ou 1er février?


J'utiliserais la colonne en tant que dateTime à l'aide d'EN-GB en premier, puis en FR-US, si elles sont à la fois, il est impossible de déterminer s'il devrait être un format de date des États-Unis ou du Royaume-Uni afin que je ne puisse pas convertir la colonne. J'ai les étapes nécessaires pour arrêter cela de l'événement que le seul problème est que j'utilise une heure comme une date d'heure


Néanmoins, nous ou le Royaume-Uni ne changent pas le fait que 10:23:30 peut être soit 10h00 à 22 heures.


Vous stockez donc des dates / fois dans des colonnes typées de Varcharne et souhaitez-vous résoudre ce problème? Aussi, soyez conscient que l'analyse est beaucoup plus lente que de coulée / convertie.


3 Réponses :


1
votes

Je ne suis pas sûr de savoir pourquoi vous voudriez une valeur DateTime code> à partir de 1900, mais vous pouvez utiliser:

select PARSE('11:30 PM' AS time using 'en-gb')


2 commentaires

Merci mais malheureusement que cela ne m'aiderait pas. 23h30 est simplement un exemple. Il pourrait y avoir une autre colonne avec une valeur "2011-10-10 11:30" et, dans ce cas, je ne voudrais pas me débarrasser de la partie de date, mais si chaque date dans une colonne DateTime est 1900-01-01, je 'll savoir qu'il est prudent de convertir la colonne DateTime en temps


@Anonymous. . . Je suggérerais que vous posiez une question neuve avec des données d'échantillonnage clairs et des résultats souhaités. Cela répond à la question qui a été posée ici.



1
votes

Si vous recherchez uniquement la valeur '1900-01-01' en tant que sortie, vous pouvez simplement lancer à la date de la date inférieure -

1900-01-01


0 commentaires

2
votes

Comme je l'ai vu, il peut ne pas être possible car parse () utilise .NET avec DateTimeMetSles.Ovewhitapes | DateTimestyles.assumesUniversal Pour la date et / ou l'analyse de temps en tant que réglage fixe.

Vous pouvez utiliser Définir la langue pour définir une langue / une culture spécifique lors de l'utilisation de moulages ou de convertir.


0 commentaires