Sql server Laravel SQL Server查询语法

Sql server Laravel SQL Server查询语法,sql-server,laravel,tsql,Sql Server,Laravel,Tsql,我需要一些关于我无法运行的查询语法的帮助。 这是一个可以在SQL Server上运行的SQL Server查询,我试图在laravel db::select语句中实现它,但没有成功 出现的问题是转义字符和列名 下面是一个例子: DB::connection('con')->select('SELECT a."First Name", b."Last Name", DATEADD ( minute, a."B

我需要一些关于我无法运行的查询语法的帮助。 这是一个可以在SQL Server上运行的SQL Server查询,我试图在laravel db::select语句中实现它,但没有成功

出现的问题是转义字符和列名 下面是一个例子:

DB::connection('con')->select('SELECT a."First Name", b."Last Name",  DATEADD (
        minute,
        a."Birthday Date",
        DATEADD (day, a."Birthday Time", '1899-12-31')
    ) as 'Birthday', FROM
    DATABASE..[PERSONS] a
    LEFT JOIN DATABASE..[PERSONNELDATA] b ON b."First Name" = a."First Name"');
请不要注意逻辑,因为我会在飞行中重写它来制作一个简化的示例。除此之外,无法过帐的原始查询太长

每当我尝试运行此查询时,我都会遇到一些关于“Unexpected”(意外)或“Unexpected”(意外)等的错误。如何运行能够在SQL Server Management Studio中运行的此查询


感谢您的帮助。

Laravel附带了一个DB::getQueryLog()函数。您可以使用该函数检索刚才使用的SQL语句,并将其放入SQL工具中,以查找您的查询与DB facade生成的查询之间的差异。

您正在混合引用的标识符(请参见手册中的内容)

您同时使用了
[]

将它们更改为在整个查询过程中保持一致,然后查看Laravel的进展情况

例如,将它们全部替换为双引号将产生:

选择一个“名字”
,b.“姓”
,DATEADD(分钟,一个“生日日期”,DATEADD(天,一个“生日时间”,“1899-12-31”)作为“生日”
从数据库中..“人员”作为
左边
加入数据库..“PERSONNELDATA”作为b
关于b“名字”=a“名字”
;

这是与在SQL Server中运行的完全相同的查询吗?如果是这样,考虑将所有引用的标识符更改为一致的,例如使用所有<代码> []/COD>或<代码> >“<代码> >,而不是TXOXX的混合,请将其作为回答,以便我可以接受。您从这个代码中得到了什么?生日日期“,日期添加(日期,a“生日时间”,“1899-12-31”))
我说,不要注意查询的逻辑方面。:)我不知道您从实际数据中会得到什么,请在sql server studio中亲自尝试。根据我之前的评论,我给出了一个答案。这是一个不错的想法,但实际上只是gvee所说的不同标识符。不过,谢谢您的帮助!我非常感谢够多了。希望有一天这能帮助别人。