我的查询中有以下语句:
declare @d int = day(getdate())
declare @m int = month(getdate())
declare @y int = year(getdate())
select @d,@m,@y
所以我想将@ d,@ m,@ y转换为日期类型(格式)并将其用作日期参数! 谢谢
答案 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()