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

Sql server 2008 r2 如何在SQL server 2008 r2中将3整数转换为日期格式?,sql-server-2008-r2,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转换为日期类型(格式),并将其用作日期参数! 谢谢试试这个: declare @d int = day(getdate()) declare @m int = month(getdate()) declare @y i

我的查询中有以下语句:

declare @d int = day(getdate())
declare @m int = month(getdate())
declare @y int = year(getdate())
select @d,@m,@y
所以我想将@d、@m、@y转换为日期类型(格式),并将其用作日期参数! 谢谢

试试这个:

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

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

这将以便携方式完成:

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())
挑选* 来自天气预报
在getdate()-7和getdate()之间的哪一个Cast(以nchar(4)表示的年份)+'-'+以nchar(2)表示的月份)+'-'+以日期表示的日期(以nchar(2))表示的日期)有更好的例子吗?为什么您不只是使用
getdate()
?你为什么要摆弄着把东西拆开,改变数据类型?只是为了它?不是对每个人都有效。如果在代码上方添加
set language british
,则会得到
将nvarchar数据类型转换为datetime数据类型的结果,导致值超出范围。
非常感谢,这很有帮助;)请格式化您的代码,并添加一些注释,解释它如何解决问题以及为什么与其他人的答案不同。代码是格式化的,但如果您不喜欢它的外观,请随意复制-粘贴到SQL查询窗口并对其进行美化。至于它的不同之处,我的串联将整数转换为字符串,然后将结果转换为日期变量。除此之外,如果有人挖掘我的话,这只是另一个版本。我不是这个答案的接收者,也不是论坛的主持人。这只是一个友好的反馈,可以提高问题的质量。从目前的情况看,它更有可能吸引反对票和负面信号。