2011-01-11 95 views
6

我需要日期时间的日期部分。在 “DD-MM-YYYY”从DateTime sql server 2005删除时间2005

的格式我试图follwoing

查询:

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” 格式。

回答

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

尝试:

SELECT convert(varchar, getdate(), 105) 

更多here

+0

谢谢Eumiro :) – Mike 2011-01-11 13:40:50

3

使用转换功能“作品”,但只有当你与字符串比较字符串。为了有效地比较日期,你确实需要在等式两边保持强类型的SMALLDATETIME数据类型(即“=”)。因此,上面的'apros'评论确实是这里最好的答案,因为这里提到的博客有正确的公式,用于通过舍入和任何日期列将它“展平”到午夜(即12:00:00)如果没有时间给定日期,SQL Server 2005将始终默认为12:00:00。

这个工作对我来说...

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