Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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_Laravel 4_Sql Server 2012 - Fatal编程技术网

“如何修复错误”;从字符串“转换日期时间”时转换失败;在SQL查询中?

“如何修复错误”;从字符串“转换日期时间”时转换失败;在SQL查询中?,sql,sql-server,laravel-4,sql-server-2012,Sql,Sql Server,Laravel 4,Sql Server 2012,我在日志中发现的错误如下 带有消息“SQLSTATE[22007]”的“Illumb\Database\QueryException”: [Microsoft][ODBC驱动程序11 for SQL Server][SQL Server]转换 从字符串转换日期和/或时间时失败。(SQL: )" 在里面 wwwroot\myproject\vendor\laravel\framework\src\light\Database\Connection.php:625 在数据库上,数据类型为dateti

我在日志中发现的错误如下

带有消息“SQLSTATE[22007]”的“Illumb\Database\QueryException”: [Microsoft][ODBC驱动程序11 for SQL Server][SQL Server]转换 从字符串转换日期和/或时间时失败。(SQL:

)" 在里面 wwwroot\myproject\vendor\laravel\framework\src\light\Database\Connection.php:625

在数据库上,数据类型为
datetime
,并且不为null

基于,我尝试更改发送到数据库的格式。因此,我尝试在“2015-09-30 00:00:00”和“2015-09-30 23:59:59”之间在
和[created_at]上不使用
T

在本地,我使用的是mysql,代码运行得很好。如果我在SQL Server客户机上测试上述查询,这两种方法(使用和不使用
T
)都可以工作


如何在不对数据库本身进行任何更改的情况下解决此问题

PHP/Laravel代码:

$items = $items->whereBetween($key, ["'".$value_aux."T00:00:00'", "'".$value_aux."T23:59:59'"]);

在@lad2025的帮助下,我让它开始工作

基于他对我的问题的评论,我在代码部分(本例中为Laravel/PHP)更改了我传递的格式。(实际上,我自己“删除”了格式,只是在传递到查询之前向变量添加了字段。这样,我就让数据库决定他想要的格式)

而不是

$itens = $itens->whereBetween($key, ["'".$value_aux."T00:00:00'", "'".$value_aux."T23:59:59'"]);
我将代码更改为:

$sta = $value_aux."T00:00:00";
$end = $value_aux."T23:59:59";
$itens = $itens->whereBetween($key, [$sta, $end]);

试试:
{ts'1900-01-01 00:00:00'}
这种格式,就像{ts'2015-09-30 00:00:00'}和……
对不起@lad2025我不知道如何实现这种格式(如果你说的是YYYY-DD-MM已经被用作上面的示例)YYYY-MM-DD是如何实现的?还可以尝试设置日期格式YMD@lad2025(2015==YYYY);(09=毫米);(30==DD);2015年9月的最后一天,我很高兴听到它的工作。
$sta = $value_aux."T00:00:00";
$end = $value_aux."T23:59:59";
$itens = $itens->whereBetween($key, [$sta, $end]);