web-dev-qa-db-fra.com

Comment sélectionner une date sans heure en SQL

Lorsque je sélectionne la date en SQL, il est retourné sous la forme 2011-02-25 21:17:33.933. Mais je n'ai besoin que de la partie Date, c'est-à-dire 2011-02-25. Comment puis-je faire ceci?

218
Neeraj

Je suppose qu'il veut une ficelle

select convert(varchar(10), '2011-02-25 21:17:33.933', 120)
129
bernd_k

Pour SQL Server 2008:

Convert(date, getdate())  

Veuillez vous référer à https://docs.Microsoft.com/en-us/sql/t-sql/functions/getdate-transact-sql

437
Prad9

Le plus rapide est datediff , par exemple.

select dateadd(d, datediff(d,0, [datecolumn]), 0), other..
from tbl

Mais si vous ne devez utiliser que la valeur, vous pouvez ignorer le dateadd, par exemple.

select ...
WHERE somedate <= datediff(d, 0, getdate())

où l'expression datediff(d, 0, getdate()) est suffisante pour renvoyer la date d'aujourd'hui sans partie d'heure.

52
RichardTheKiwi

Utilisez CAST (GETDATE () comme date) qui a fonctionné pour moi, simple.

33
Anna-leny
21
Orbit

tu peux utiliser comme ça 

SELECT Convert(varchar(10), GETDATE(),120) 
12
A.Goutam

Vous pouvez essayer celui-ci aussi.

SELECT CONVERT(DATE, GETDATE(), 120)
2
Ram Pratap

C'est un peu tard, mais utilisez la fonction "<curdate" ODBC (les crochets "fn" est la séquence d'échappement de la fonction ODBC).

SELECT {fn curdate()} 

Sortie: 2013-02-01

2
Stefan Steiger

Reconvertissez-le en date-heure après la conversion en date afin de conserver la même date si nécessaire

select Convert(datetime, Convert(date, getdate())  )
1
RollRoll

L'utilisation est simple:

convert(date, Btch_Time)

Exemple ci-dessous:

Table:

Efft_d       Loan_I  Loan_Purp_Type_C   Orig_LTV    Curr_LTV    Schd_LTV    Un_drwn_Bal_a      Btch_Time            Strm_I  Btch_Ins_I
2014-05-31  200312500   HL03             NULL         1.0000    1.0000         1.0000      2014-06-17 11:10:57.330  1005    24851e0a-53983699-14b4-69109


Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'
1
Arvind Kumar

Si vous voulez renvoyer un type de date en tant que simple utilisation de date

CONVERT(date, SYSDATETIME())

ou 

SELECT CONVERT(date,SYSDATETIME()) 

ou

DECLARE @DateOnly Datetime
SET @DateOnly=CONVERT(date,SYSDATETIME())
0
TMP ByKIS

Dans PLSQL, vous pouvez utiliser

to_char(SYSDATE,'dd/mm/yyyy')
0
Morterox

Dans le cas où vous avez besoin de temps pour être des zéros:

SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 120)

0
Simon Alphonse

SÉLECTIONNER la date ('2011-02-25 21: 17 - 33.933') car la date nous en donnera le 2011-02-25.

Travaillé pour moi Esperons que ça marche.

0
Mazhar Ghulam

Commencez par convertir la date en virgule flottante (qui affiche le chiffre), puis par ROUND le chiffre en 0 décimale, puis convertissez-la en date/heure.

convert(datetime,round(convert(float,orderdate,101),0) ,101)
0
user4162468

Essaye ça.

SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))
0
Ram Pratap