如何在SQL中select没有时间的date
当我在SQL中selectdate时,它返回2011-02-25 21:17:33.933 。 但我只需要date部分,即2011-02-25 。 我该怎么做? 
我猜他想要一个string
 select convert(varchar(10), '2011-02-25 21:17:33.933', 120) 
 Convert(date, getdate()) 
最快的是,例如
 select dateadd(d, datediff(d,0, [datecolumn]), 0), other.. from tbl 
但是,如果您只需要使用该值,那么可以跳过date加载,例如
 select ... WHERE somedate <= datediff(d, 0, getdate()) 
  datediff(d, 0, getdate())的expression式足以返回没有时间部分的今天的date。 
使用CAST(GETDATE()作为date)对我来说很简单。
 CAST( FLOOR( CAST( GETDATE() AS FLOAT ) ) AS DATETIME ) 
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-a-Date-Time-Stamp-in-SQL-Server.htm
你可以这样使用
 SELECT Convert(varchar(10), GETDATE(),120) 
对于2008年的老版本 :
 SELECT DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0) 
这有点晚,但使用ODBC“curdate”函数(angular括号'fn'是ODBC函数转义序列)。
 SELECT {fn curdate()} 
 输出: 2013-02-01 
你也可以试试这个
 SELECT CONVERT(DATE, GETDATE(), 120) 
如果你想返回一个datetypes只是一个date使用
 CONVERT(date, SYSDATETIME()) 
要么
 SELECT CONVERT(date,SYSDATETIME()) 
要么
 DECLARE @DateOnly Datetime SET @DateOnly=CONVERT(date,SYSDATETIME()) 
在PLSQL中,你可以使用
 to_char(SYSDATE,'dd/mm/yyyy') 
首先将date转换为浮点数(显示数字),然后将数字循环到0小数点,然后将其转换为date时间。
 convert(datetime,round(convert(float,orderdate,101),0) ,101) 
使用很简单:
 convert(date, Btch_Time) 
示例如下:
表:
 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' 
尝试这个。
 SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))