Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获得设定年份的第一天 declare@coyear varchar(最大值) 设置@coyear='2018' 选择(年份(日期添加(年份,0,@coyear)))_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 获得设定年份的第一天 declare@coyear varchar(最大值) 设置@coyear='2018' 选择(年份(日期添加(年份,0,@coyear)))

Sql 获得设定年份的第一天 declare@coyear varchar(最大值) 设置@coyear='2018' 选择(年份(日期添加(年份,0,@coyear))),sql,sql-server,tsql,Sql,Sql Server,Tsql,我已将@coyear设置为2018年,我将获得2018年的结果。 我要一年中的第一天,这是我为今年设定的。 例如,当我在@coyear中通过2018年时,我希望得到2018-01-01的结果。DATEFROMPARTS似乎是一个更好的解决方案: DECLARE @CoYear int; --Why would you need 2GB/2 Billion characters for a year? SET @CoYear = 2018; SELECT DATEFROMPARTS(@CoYear

我已将
@coyear
设置为2018年,我将获得2018年的结果。 我要一年中的第一天,这是我为今年设定的。
例如,当我在
@coyear
中通过2018年时,我希望得到2018-01-01的结果。

DATEFROMPARTS
似乎是一个更好的解决方案:

DECLARE @CoYear int; --Why would you need 2GB/2 Billion characters for a year?
SET @CoYear = 2018;
SELECT DATEFROMPARTS(@CoYear, 1, 1);
通过使用DATEFROMPARTS

DECLARE @Year INT = 2021;

SELECT DATEFROMPARTS(@Year, 1, 1) AS Result;

所有版本。试试这个:

DECLARE @Year int = 2018
SELECT CONVERT(date, LTRIM(@Year))

DATEFROMPARTS()
?在收到答案后完全更改问题并使其无效,这是非常不受欢迎的,@Anuragsharma,请不要这样做。似乎你的问题与我的答案下面的评论中表达的不同。
declare@coyear varchar(max)
想想你的代码!为什么将其声明为字符串?为什么是一个20亿字符的字符串?学习坏习惯是一个糟糕的开始。谢谢拉努。是的,那是错的。如果我想得到最后一天,比如2018-12-31。我试着从部件中选择DATEFROMPARTS(@CoYear,+1,-1);但是没有帮助。提前感谢使用
EOMOUNT
获取当月的最后一天@Anuragsharma。此外,
-1
作为
DATEFROMPARTS
的参数没有意义。“如果你不明白它的作用,请看一看。”“Larne,如果我想要任何一年任何一个月的最后一天。”。我尝试了这个declare comonth int='12'declare coyear int='2018'选择EOMONTH(comonth,coyear)。但是没用,先谢谢你