Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.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 server 为什么我的约会部分不起作用?_Sql Server - Fatal编程技术网

Sql server 为什么我的约会部分不起作用?

Sql server 为什么我的约会部分不起作用?,sql-server,Sql Server,我正在努力学习SQL,但在让DATEPART正常工作时遇到了困难。我的表是付款,列名是生日 问题:这里有什么问题? 问题是为什么SQL语句会抛出错误。由于阅读,他们发现了一个简单的语法问题 @columnName是做什么的?使用tableName.ColumnName更好,还是应该使用@ColumnName 1970-04-05 代码: 这是屏幕的图像 您需要在orderDay之后丢失逗号: SELECT DATEPART(yyyy,p.BirthDay) AS OrderYear,

我正在努力学习SQL,但在让DATEPART正常工作时遇到了困难。我的表是付款,列名是生日

问题:这里有什么问题?

问题是为什么SQL语句会抛出错误。由于阅读,他们发现了一个简单的语法问题

@columnName是做什么的?使用tableName.ColumnName更好,还是应该使用@ColumnName

     1970-04-05
代码:

这是屏幕的图像


您需要在orderDay之后丢失逗号:

SELECT DATEPART(yyyy,p.BirthDay) AS OrderYear,
   DATEPART(mm,  p.BirthDay) AS OrderMonth,
   DATEPART(dd,  p.BirthDay) AS OrderDay
FROM Payment as p;

您需要在orderDay之后丢失逗号:

SELECT DATEPART(yyyy,p.BirthDay) AS OrderYear,
   DATEPART(mm,  p.BirthDay) AS OrderMonth,
   DATEPART(dd,  p.BirthDay) AS OrderDay
FROM Payment as p;

最简单的方法是将日期转换为字符串。您还有一个逗号语法错误

DECLARE @BirthDay DATETIME
SET @Birthday='04/05/05'

SELECT
    *,
    CAST(OrderYear AS NVARCHAR(4))+'-'+CAST(OrderMonth AS NVARCHAR(2))+'-'+CAST(OrderDay AS NVARCHAR(2))
FROM
(
    SELECT DATEPART(yyyy,@BirthDay) AS OrderYear,
           DATEPART(mm,  @BirthDay) AS OrderMonth,
           DATEPART(dd,  @BirthDay) AS OrderDay
)AS X

最简单的方法是将日期转换为字符串。您还有一个逗号语法错误

DECLARE @BirthDay DATETIME
SET @Birthday='04/05/05'

SELECT
    *,
    CAST(OrderYear AS NVARCHAR(4))+'-'+CAST(OrderMonth AS NVARCHAR(2))+'-'+CAST(OrderDay AS NVARCHAR(2))
FROM
(
    SELECT DATEPART(yyyy,@BirthDay) AS OrderYear,
           DATEPART(mm,  @BirthDay) AS OrderMonth,
           DATEPART(dd,  @BirthDay) AS OrderDay
)AS X

正如在评论和类似的回答中提到的,您可能只是遇到了一些语法错误。名称,
OrderDay
后的逗号

在您的屏幕截图中,您还存在一些语法错误

SELECT p.BirthDay
       datepart(dd,p.BirthDay) as Year
from payment as p;
应该读更多类似的内容:

SELECT p.BirthDay, -- Note the comma!
       DATEPART(dd,p.BirthDay) AS Day --dd = day
FROM Payment as p;
除了使用
DATEPART()
,您还可以使用快捷方式功能:

SELECT YEAR(p.BirthDay), MONTH(p.BirthDay), DAY(p.BirthDay)
FROM Payment p

正如在评论和类似的回答中提到的,您可能只是遇到了一些语法错误。名称,
OrderDay
后的逗号

在您的屏幕截图中,您还存在一些语法错误

SELECT p.BirthDay
       datepart(dd,p.BirthDay) as Year
from payment as p;
应该读更多类似的内容:

SELECT p.BirthDay, -- Note the comma!
       DATEPART(dd,p.BirthDay) AS Day --dd = day
FROM Payment as p;
除了使用
DATEPART()
,您还可以使用快捷方式功能:

SELECT YEAR(p.BirthDay), MONTH(p.BirthDay), DAY(p.BirthDay)
FROM Payment p

我不太清楚你在问什么,但我看到一个简单的语法错误:删除
OrderDay
后面的逗号。这能解决问题吗?那些弯弯曲曲的线条。它们是语法错误。我不太确定你在问什么,但我看到了一个简单的语法错误:删除
OrderDay
后面的逗号。这能解决问题吗?那些弯弯曲曲的线条。这些都是语法错误。我喜欢所有的答案。很难选择哪一个是最好的答案。我喜欢所有的答案。很难选择哪一个是最好的答案。当然有助于解释原因。当然有助于解释原因。