Comment choisir le jour sans le temps en SQL
Lorsque je sélectionne la date en SQL il est retourné comme 2011-02-25 21:17:33.933
. Mais j'ai besoin que de la Date de la partie, c'est-à 2011-02-25
. Comment puis-je faire cela?
- Je suppose qu'il veut une chaîne de caractères, et, par conséquent, il n'est pas dupliqué
- Double Possible de Comment faire pour retourner la partie date seulement à partir d'un Serveur SQL de type de données datetime
Vous devez vous connecter pour publier un commentaire.
Je suppose qu'il veut une chaîne
Pour SQL Server 2008:
Veuillez vous référer à https://docs.microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql
DATE
est de nouveau en 2008.date
de type de données, donc le rendu cette solution comme non valide.La plus rapide est
datediff
, par exempleMais si vous avez uniquement besoin d'utiliser la valeur, alors vous pouvez sauter le dateadd, par exemple
où l'expression
datediff(d, 0, getdate())
suffit de retourner la date d'aujourd'hui, sans temps de partie.Utiliser CAST(GETDATE() as date) qui a fonctionné pour moi, simple.
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
vous pouvez utiliser comme cette
Pour 2008 ancienne version :
SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
C'est un peu tard, mais utiliser ODBC "curdate" fonction (angle brackes 'fn' est la fonction ODBC séquence d'échappement).
De sortie:
2013-02-01
SELECT {fn curdate()} FROM (SELECT 1) AS T(X)
et avoir un regard sur le plan d'exécution (version xml), vous verrez que ce qui est effectivement exécutée estCONVERT(varchar(10),getdate(),23)
. Si le type de données de cette fonction ODBC estvarchar(10)
qui signifie que si vous voulez comparer le résultat avec undatetime
vous obtiendrez une conversion implicite devarchar(10)
àdatetime
sur une chaîneyyyy-mm-dd
. Que la conversion implicite échouera avecset dateformat dmy
.Vous pouvez essayer celui-là aussi.
Utilisation est simple:
Exemple ci-dessous:
Table:
Reconvertir datetime après la conversion à jour afin de garder la même datatime si nécessaire
En PLSQL vous pouvez utiliser
D'abord Convertir la date à flotteur (qui affiche le numérique), puis
ROUND
le numérique à 0 points décimaux, puis convertir le type datetime.Si vous voulez retourner un jour type que juste une date de
ou
ou
De l'essayer.
SÉLECTIONNER la date('2011-02-25 21:17:33.933') que la date va nous donner 2011-02-25.
A fonctionné pour moi. Espérons que cela fonctionne.