Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/74.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年函数结合起来?_Sql_Sql Server_Tsql_Date_Text - Fatal编程技术网

如何将固定月和固定日与sql年函数结合起来?

如何将固定月和固定日与sql年函数结合起来?,sql,sql-server,tsql,date,text,Sql,Sql Server,Tsql,Date,Text,我想在T-SQL中用固定的日期和月份(始终是一年中的最后一天和月份)组成一个日期,年份必须是可变的 这一天总是:31 月份始终为:12 年份是可变的,比如说2014年 格式类似于12-31-2014或12-31-2015 我想到了年份功能: select '12'+YEAR(getdate())-1 但这会导致2014+12=2026 如何使用T-SQL实现这一点?SQL Server具有用于此目的的DATEFROMPARTS功能: DECLARE @date datetime = DAT

我想在
T-SQL
中用固定的日期和月份(始终是一年中的最后一天和月份)组成一个日期,年份必须是可变的

  • 这一天总是:
    31
  • 月份始终为:
    12
  • 年份是可变的,比如说2014年
格式类似于
12-31-2014
12-31-2015

我想到了
年份
功能:

select '12'+YEAR(getdate())-1
但这会导致
2014+12=2026


如何使用T-SQL实现这一点?

SQL Server具有用于此目的的
DATEFROMPARTS
功能:

DECLARE @date datetime = DATEFROMPARTS( 2014, 12, 31 )

此处记录:

SQL Server具有用于此目的的
DATEFROMPARTS
功能:

DECLARE @date datetime = DATEFROMPARTS( 2014, 12, 31 )

此处记录:

SQL Server具有用于此目的的
DATEFROMPARTS
功能:

DECLARE @date datetime = DATEFROMPARTS( 2014, 12, 31 )

此处记录:

SQL Server具有用于此目的的
DATEFROMPARTS
功能:

DECLARE @date datetime = DATEFROMPARTS( 2014, 12, 31 )

此处记录:

您遇到的问题是
YEAR()
返回一个数字,因此服务器正在添加而不是连接。因此,如果要使用连接,需要将该数字强制返回到CHAR()中,然后将整个连接的混乱重新转换回日期(假设希望返回日期类型):


尽管如此,@Dai使用
selectdatefromparts(YEAR(getdate())-1,12,31)
的答案对眼睛来说更容易,可能对CPU来说也更容易。

您遇到的问题是
YEAR()
返回一个数字,因此服务器正在添加而不是连接。因此,如果要使用连接,需要将该数字强制返回到CHAR()中,然后将整个连接的混乱重新转换回日期(假设希望返回日期类型):


尽管如此,@Dai使用
selectdatefromparts(YEAR(getdate())-1,12,31)
的答案对眼睛来说更容易,可能对CPU来说也更容易。

您遇到的问题是
YEAR()
返回一个数字,因此服务器正在添加而不是连接。因此,如果要使用连接,需要将该数字强制返回到CHAR()中,然后将整个连接的混乱重新转换回日期(假设希望返回日期类型):


尽管如此,@Dai使用
selectdatefromparts(YEAR(getdate())-1,12,31)
的答案对眼睛来说更容易,可能对CPU来说也更容易。

您遇到的问题是
YEAR()
返回一个数字,因此服务器正在添加而不是连接。因此,如果要使用连接,需要将该数字强制返回到CHAR()中,然后将整个连接的混乱重新转换回日期(假设希望返回日期类型):


尽管如此,使用
selectdatefromparts(YEAR(getdate())-1,12,31)
来回答@Dai的问题对眼睛和CPU来说都稍微容易一些。

感谢一百万Dai!此函数具有以下语法:DATEFROMPARTS(年、月、日)For me worked:select DATEFROMPARTS(年(getdate())-1、12、31)结果:2014-12-31感谢一百万Dai!此函数具有以下语法:DATEFROMPARTS(年、月、日)For me worked:select DATEFROMPARTS(年(getdate())-1、12、31)结果:2014-12-31感谢一百万Dai!此函数具有以下语法:DATEFROMPARTS(年、月、日)For me worked:select DATEFROMPARTS(年(getdate())-1、12、31)结果:2014-12-31感谢一百万Dai!此函数具有以下语法:DATEFROMPARTS(年、月、日)For me worked:select DATEFROMPARTS(年(getdate())-1、12、31)结果:2014-12-31