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 即“dm-yyyy”

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

4

4 回答 4

13
SELECT CONVERT(VARCHAR(10),GETDATE(),105)
于 2011-01-11T13:18:19.800 回答
4

尝试:

SELECT convert(varchar, getdate(), 105)

更多在这里

于 2011-01-11T13:17:14.013 回答
4

在这里您可以找到一些示例: http: //blog.pengoworks.com/index.cfm/2009/1/9/Useful-tips-and-tricks-for-dealing-with-datetime-in-SQL

于 2011-01-11T13:21:10.360 回答
3

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

这对我有用...

select dateadd(day, datediff(day, '20000101', @date), '20000101') 
于 2013-11-04T00:46:12.817 回答