SQL Server date de création
Pouvons-nous créer une date à l'aide de SQL Server 2005 ?
Exemple si j'ai year = 2010, mois = 11, et le jour = 2, comment puis-je convertir ou créer datetime?
Ci-dessous si nous écrire en javascript
var date = new Date(2010, 10, 2, 0, 0, 0, 0);
et c'est avec oracle
SELECT TO_DATE('2010-11-02', 'YYYY-MM-DD') FROM DUAL
Merci
OriginalL'auteur tsurahman | 2010-11-02
Vous devez vous connecter pour publier un commentaire.
Si vous travaillez avec des cordes, et de vouloir convertir un type de données datetime, il est préférable de travailler avec des chaînes de caractères qui peuvent être sans ambiguïté converti à datetimes. Les formats suivants peuvent être convertis en valeurs datetime de SQL (via CONVERTIR, ou de laisser SQL Server ne la conversion implicitement) sans aucune ambiguïté:
Dans tous les formats ci-dessus, la date composants sont disposés comme les 4 chiffres de l'année, puis le mois, puis le jour. D'autres formats de regarder trivialement similaires (par exemple,
'2010-11-02'
) peuvent être convertis à des valeurs différentes, selon les paramètres de langue de votre connexion (mais Dogget la réponse est toujours valable, parce qu'il est utilisé dans un ODBC littéral de l'expression, qui est bien défini autour d'elle avec les{d }
caractères)xxxx-xx-xx
par défaut est toujours la menacer commeyyyy-MM-dd
, pas commeyyyy-dd-MM
:select cast ('2010-11-02' as datetime)
de la langue "anglais" british " select cast ('2010-11-02' as datetime) - résultat: 2010-02-11 00:00:00.000
et pour prouver que c'est se tromper sur l'entrée, pas de sortie -
set language 'british english' select DATEPART(month,cast ('2010-11-02' as datetime))
renvoie 2Probablement, par défaut, sans indication explicite,
yyyy-MM-dd
est format de date par défaut. Je pense que oui parce que les deux anglais américain SQL Server 2008 (fr-US partout) et le russe SQL Server 2008 (ru-ru partout) fonctionne de la même manière (comme je l'ai décrit). Pourquoi peut-il être?Je ne suis pas sûr de ce que vous demandez maintenant. Mais c'est pourquoi j'ai pris soin de souligner que les pointillés format est ambigu - parce que je sais par expérience douloureuse qu'il est. En outre, une fois que vous savez que AAAAMMJJ (sans les tirets) n'est pas ambigu, vous sauver de vous-même deux personnages à chaque fois 🙂
OriginalL'auteur Damien_The_Unbeliever
Vous pouvez faire
SELECT {d '2010-11-02'}
utiliser ce format exact siOriginalL'auteur Doggett
Spécifier le style dans l'argument de la fonction de conversion.
Voir l'aide de msdn sur convertir pour les différentes valeurs.
OriginalL'auteur Jørn Jensen
select convert(datetime, convert(char(8), 20101102))
OriginalL'auteur codingbadger
Vous pouvez utiliser
select convert(datetime, '11-11-2010')
pour convertir de type datetime.Oh.Merci. Je ne le savais pas.
OriginalL'auteur pavanred
Vous pouvez simplement utiliser
set @datevar='20101102';
.Ceci est indépendant de la langue et sera converti implicitement.
OriginalL'auteur Manfred Sorg