如何在SQL Server 2008 r2中将3整数转换为日期格式?

时间:2014-01-23 08:31:06

标签: sql-server-2008-r2

我的查询中有以下语句:

declare @d int = day(getdate())
declare @m int = month(getdate())
declare @y int = year(getdate())
select @d,@m,@y

所以我想将@ d,@ m,@ y转换为日期类型(格式)并将其用作日期参数! 谢谢

3 个答案:

答案 0 :(得分:1)

试试这个:

declare @d int = day(getdate())
declare @m int = month(getdate())
declare @y int = year(getdate())

DECLARE @myDate DATETIME
SET @myDate = CAST (@y AS NVARCHAR(4))+'-'+CAST (@m AS NVARCHAR(2))+'-'+CAST (@d AS    NVARCHAR(2));

select @myDate

如果你不投出价值,你会得到一些其他日期。

答案 1 :(得分:0)

这将以便携方式实现:

select DATEADD(year,@y - 2000,DATEADD(month,@m - 1, DATEADD(day,@d - 1,
        '20000101')))

但是,如果你的动机只是为了获得当前日期而没有任何时间部分,我只会这样做:

select DATEADD(day,DATEDIFF(day,0,GETDATE()),0)

甚至

select CONVERT(date,GETDATE())

答案 2 :(得分:0)

选择* 从WeatherForecast 其中Cast(cast(年为nchar(4))+'-'+ cast(月为nchar(2))+'-'+ cast(日为nchar(2))作为日期介于getdate()-7和getdate()