从DateTime sql server 2005中删除时间

时间:2011-01-11 13:14:26

标签: sql-server sql-server-2005 datetime datetime-format

我需要从datetime开始的日期部分。格式为“dd-mm-yyyy”

我尝试了以下

查询:

select Convert(varchar(11), getdate(),101)

输出:

01/11/2011

查询

SELECT cast(floor(cast(GETDATE() as float)) as datetime)

输出

2011-01-11 00:00:00.000

查询:

SELECT 
    CONVERT(VARCHAR(MAX),DATENAME(DD,GETDATE())) + '-' + 
    CONVERT(VARCHAR(MAX),DATEPART(MONTH,GETDATE())) + '-' + 
    CONVERT(VARCHAR(MAX),DATENAME(YYYY,GETDATE())) `

输出

11-1-2011即“d-m-yyyy”

我需要以“dd-mm-yyyy”格式输出。

4 个答案:

答案 0 :(得分:13)

SELECT CONVERT(VARCHAR(10),GETDATE(),105)

答案 1 :(得分:4)

尝试:

SELECT convert(varchar, getdate(), 105)

更多here

答案 2 :(得分:4)

答案 3 :(得分:3)

使用CONVERT函数“有效”,但前提是您要将字符串与字符串进行比较。为了有效地比较日期,您确实需要在等式的两边强制键入SMALLDATETIME数据类型(即“=”)。因此,上面的'apros'评论确实是最好的答案,因为上面提到的博客有正确的公式,可以通过舍入和任何日期列来将时间分量“展平”到午夜(即12:00:00)。如果没有时间给出日期,SQL Server 2005将始终默认为12:00:00。

这对我有用......

select dateadd(day, datediff(day, '20000101', @date), '20000101')