当我在SQL中选择日期时,它将返回为   2011-02-25 21:17:33.933。但是我只需要Date部分,即2011-02-25。我怎样才能做到这一点?
当我在SQL中选择日期时,它将返回为   2011-02-25 21:17:33.933。但是我只需要Date部分,即2011-02-25。我怎样才能做到这一点?
Answers:
对于SQL Server 2008:
Convert(date, getdate())  请参考https://docs.microsoft.com/zh-cn/sql/t-sql/functions/getdate-transact-sql
DATE是2008
                    date数据类型,因此使此解决方案无效。
                    CAST(
        FLOOR( 
             CAST( GETDATE() AS FLOAT ) 
        )
AS DATETIME
)
http://www.bennadel.com/blog/122-Getting-Only-the-Date-Part-of-Date-Time-Stamp-in-SQL-Server.htm
有点晚了,但是使用ODBC“ curdate”函数(尖括号'fn'是ODBC函数转义序列)。
SELECT {fn curdate()} 输出: 2013-02-01
SELECT {fn curdate()} FROM (SELECT 1) AS T(X)并查看实际的执行计划(xml版本),您将看到实际执行的是CONVERT(varchar(10),getdate(),23)。因此,此ODBC函数的数据类型是varchar(10)意味着,如果要与a比较结果,datetime则将在字符串上获得从varchar(10)到的隐式转换。该隐式转换将失败。datetimeyyyy-mm-ddset dateformat dmy
                    您也可以尝试这个。
SELECT CONVERT(DATE, GETDATE(), 120)如果您需要时间为零,例如2018-01-17 00:00:00.000:
SELECT CONVERT(DATETIME, CONVERT(DATE, GETDATE()), 121)
使用很简单:
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-69109Select * from helios.dbo.CBA_SRD_Loan where Loan_I in ('200312500') and convert(date, Btch_Time) = '2014-06-17'为时已晚,但后续工作对我来说很好
declare @vCurrentDate date=getutcdate()
select @vCurrentDate当数据类型为日期时,小时数将被截断
在PLSQL中,您可以使用
to_char(SYSDATE,'dd/mm/yyyy')试试这个。
SELECT DATEADD(DD, 0, DATEDIFF(DD, 0, GETDATE()))