用时间类型字段作导航关联,查询会报Incorrect DATETIME value: '07/01/2024 00:00 返回

我有两个表,一个排班表,一个假期表
我用排班表的工作日(时间类型),作一个一对一的导航关联,在本地测试运行是正常的,但是发布到docker上运行就报错:
排班表:
假日表:
查询:
报错:
Incorrect DATETIME value: '07/01/2024 00:00:00'
热忱回答(25)
-
fate sta VIP0
2024/6/3什么库
0 回复 -
fate sta VIP0
2024/6/3sqlsugar版本是多少,我记得修复过了
0 回复 -
梁捷廷 VIP0
2024/6/3还有另外一个奇怪的点是,即使在docker上,如果我查的是5月的数据,是不会报错的,查询了6月,7月才会报错
0 回复 -
梁捷廷 VIP0
2024/6/30 回复 -
梁捷廷 VIP0
2024/6/3查5月正常:
0 回复 -
梁捷廷 VIP0
2024/6/3查7月报错:
0 回复 -
fate sta VIP0
2024/6/3@梁捷廷:
onerror监控一下报错 sql
0 回复 -
fate sta VIP0
2024/6/3Console.WriteLine(UtilMethods.GetNativeSql(sql, pars));
用这个方法打印出来
0 回复 -
fate sta VIP0
2024/6/3还是什么数据库
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:
SELECT * FROM (SELECT `id`,`staff_id`,`work_date`,`is_rest`,`on_duty_time`,`off_duty_time`,`is_cross_day`,`rest_time_start1`,`rest_time_end1`,`rest_time_start2`,`rest_time_end2`,`rest_time_start3`,`rest_time_end3`,`schedule_hour`,`operator_type`,`created_at`,`create_user_id`,`rest_time_is_cross_day1`,`rest_time_is_cross_day2`,`rest_time_is_cross_day3` FROM `hr_staff_schedule` WHERE (( `work_date` >= '2024-07-01 00:00:00.000' ) AND ( `work_date` <= '2024-07-31 23:59:59.000' )) ) MergeTable ORDER BY `Id` ASC
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:mysql,版本:8.0.36-0ubuntu0.22.04.1
0 回复 -
梁捷廷 VIP0
2024/6/3@梁捷廷:这个是Docker上运行的输出:
[Sql]:SELECT * FROM (SELECT `id`,`staff_id`,`work_date`,`is_rest`,`on_duty_time`,`off_duty_time`,`is_cross_day`,`rest_time_start1`,`rest_time_end1`,`rest_time_start2`,`rest_time_end2`,`rest_time_start3`,`rest_time_end3`,`schedule_hour`,`operator_type`,`created_at`,`create_user_id`,`rest_time_is_cross_day1`,`rest_time_is_cross_day2`,`rest_time_is_cross_day3` FROM `hr_staff_schedule` WHERE (( `work_date` >= @WorkDate0 ) AND ( `work_date` <= @WorkDate1 )) ) MergeTable ORDER BY `Id` ASC
[Pars]:
[Name]:@WorkDate0 [Value]:07/01/2024 00:00:00 [Type]:DateTime
[Name]:@WorkDate1 [Value]:07/31/2024 23:59:59 [Type]:DateTime
0 回复 -
fate sta VIP0
2024/6/3@梁捷廷: 报错的SQL是这个吗? 要用onerror监控,导航不止一条SQL,这个参数化是没有问题的
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:
[Sql]:SELECT `id` AS `Id`,`holidays_years` AS `HolidaysYears`,`holiday_name` AS `HolidayName`,`holidays` AS `Holidays`,`created_at` AS `CreatedAt`,`create_user_id` AS `CreateUserId` FROM `sys_legal_holidays_record` WHERE `holidays` = '07/01/2024 00:00:00'
0 回复 -
梁捷廷 VIP0
2024/6/3为什么在本地调试不会报错,用docker部署就会报错呢?本地调试和docker连的都是同一个数据库哦
0 回复 -
fate sta VIP0
2024/6/3@梁捷廷:日志搞出来
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:要什么日志
0 回复 -
fate sta VIP0
2024/6/3@梁捷廷:你只要给我拿出报错SQL就行了,AOP里在的 OnError能捕获错误
0 回复 -
梁捷廷 VIP0
2024/6/3@梁捷廷:本地执行这个SQL语句的条件就是2024/7/1 0:00:00,到在docker环境就是07/01/2024 00:00:00
本地:
Docker环境:
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:报错的SQL是:
SELECT `id` AS `Id`,`holidays_years` AS `HolidaysYears`,`holiday_name` AS `HolidayName`,`holidays` AS `Holidays`,`created_at` AS `CreatedAt`,`create_user_id` AS `CreateUserId` FROM `sys_legal_holidays_record` WHERE `holidays` = '07/01/2024 00:00:00'0 回复 -
梁捷廷 VIP0
2024/6/3查询5月不报错的SQL语句,看来用”in”查询是可以用这个格式,但是用”=“就会报错:
SELECT `id` AS `Id`,`holidays_years` AS `HolidaysYears`,`holiday_name` AS `HolidayName`,`holidays` AS `Holidays`,`created_at` AS `CreatedAt`,`create_user_id` AS `CreateUserId` FROM `sys_legal_holidays_record` WHERE `holidays` IN ('05/01/2024 00:00:00','05/02/2024 00:00:00','05/03/2024 00:00:00','05/04/2024 00:00:00','05/05/2024 00:00:00','05/06/2024 00:00:00')0 回复 -
梁捷廷 VIP0
2024/6/3@梁捷廷:in查询虽然不会报错,但是拿到的结果不对,是查询不到数据的,事实上假日表是有5月1和5月2的数据,但是用这个SQL语句查询不出来,需要是改正确的日期格式才有数据
0 回复 -
fate sta VIP0
2024/6/3@梁捷廷:这个我看一下,这格式肯定不对
0 回复 -
fate sta VIP0
2024/6/3SqlSugarCore 5.1.4.158-preview11
过五分钟后安装一下已修复
勾一下预览
0 回复 -
梁捷廷 VIP0
2024/6/3@fate sta:好的,谢谢,可以了
0 回复