从DateTime sql server 2005中删除时间

6

我需要从日期时间中提取日期部分,格式为“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个回答

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

4

尝试:

SELECT convert(varchar, getdate(), 105)

More here.



3
使用CONVERT函数“可以”比较字符串与字符串,但是对于有效比较日期,您真的需要在等式两侧保持SMALLDATETIME数据类型强类型化(即“=”)。因此,“apros”上面的评论实际上是最好的答案,因为所提到的博客具有使用正确公式去掉时间组件的正确方法,即通过四舍五入将其“平整”到午夜(即12:00:00),并且在SQL Server 2005中的任何日期列如果没有时间,则默认为12:00:00。这对我起了作用...
select dateadd(day, datediff(day, '20000101', @date), '20000101') 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接