我需要从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”格式输出。
答案 0 :(得分:13)
SELECT CONVERT(VARCHAR(10),GETDATE(),105)
答案 1 :(得分:4)
答案 2 :(得分:4)
您可以在此处找到一些示例:http://blog.pengoworks.com/index.cfm/2009/1/9/Useful-tips-and-tricks-for-dealing-with-datetime-in-SQL
答案 3 :(得分:3)
使用CONVERT函数“有效”,但前提是您要将字符串与字符串进行比较。为了有效地比较日期,您确实需要在等式的两边强制键入SMALLDATETIME数据类型(即“=”)。因此,上面的'apros'评论确实是最好的答案,因为上面提到的博客有正确的公式,可以通过舍入和任何日期列来将时间分量“展平”到午夜(即12:00:00)。如果没有时间给出日期,SQL Server 2005将始终默认为12:00:00。
这对我有用......
select dateadd(day, datediff(day, '20000101', @date), '20000101')