Sql server 2005 如何连接数字以创建自定义日期?
以下是我迄今为止所做的尝试:Sql server 2005 如何连接数字以创建自定义日期?,sql-server-2005,Sql Server 2005,以下是我迄今为止所做的尝试: select CAST( DATEPART(month,getDate())+'-'+ DATEPART(day,getDate())+'-'+ 2012 as datetime) 我以日期结束:1905-08-02 00:00:00.0。我本来想得到今天的约会。我已经重新安排了顺序,似乎没有改变。有人能告诉我为什么它会给我这个吗?为了记录在案,我计划今年使用2012年以外的其他值。 提前谢谢 select CAST ('2012'
select CAST(
DATEPART(month,getDate())+'-'+
DATEPART(day,getDate())+'-'+
2012
as datetime)
我以日期结束:1905-08-02 00:00:00.0。我本来想得到今天的约会。我已经重新安排了顺序,似乎没有改变。有人能告诉我为什么它会给我这个吗?为了记录在案,我计划今年使用2012年以外的其他值。
提前谢谢
select CAST ('2012'+
CAST(DATEPART(month,getDate()) as char(2))+
CAST(DATEPART(day,getDate()) as char(2))
as datetime)
您必须连接字符串
如果这个小练习的目标是改变给定日期的年份,你可以这样做
declare @NewYear int = 2003
-- with time part
select dateadd(year, @NewYear - year(getdate()), getdate())
-- time part removed
select dateadd(year, @NewYear - year(getdate()), dateadd(day, 0, datediff(day, 0, getdate())))
CAST()
select
cast(
cast(DATEPART(month,getDate()) as varchar(2))+'-'+
cast(DATEPART(day,getDate()) as varchar(2))+'-'+
'2012' as datetime)
此代码将正常工作,您需要确保连接相同的数据类型,并使用具有特定日期时间格式的convert:
SELECT CONVERT(DATETIME,
CAST(DATEPART(month,getDate()) AS NVARCHAR(50))
+'-'+CAST(DATEPART(day,getDate()) AS NVARCHAR(50))
+'-2012'
,121)
选择10+'-'+17
是。。。29不是“12-17”