ncx1259988 2017-02-12 05:13 采纳率: 0%
浏览 3432

查询语句报 Out of range value for column

各位好,遇到一个问题需要向大家请教,我的环境是MySql 驱动包是mysql-connector-java-5.1.30.jar(试过很多版本都是一样),查询一条语句报 Out of range value for column,百度谷歌只发现插入更新报这个错误的资料,所以向大家请教,希望不吝赐教。
语句如下:
SELECT
CONCAT(
date_format(dcm.DPRODUCTIONDATE, '%Y'),
'年度'
) AS productionDate,
date_format(dcm.DPRODUCTIONDATE, '%Y') AS shortDate,
sum(COALESCE(dcm.NCOSTTIME, 0)) AS nCostTime,
sum(
COALESCE (dcm.NSTANDARDTIME, 0)
) AS standardTime2,
CASE
WHEN (1) = '0' THEN
COALESCE (
sum(dcm.NNORMALSHUTDOWNTIME),
0
)
ELSE
COALESCE (
sum(dcm.nNSDirectTimeQty),
0
)
END normalShutTime,
CASE
WHEN (1) = '0' THEN
COALESCE (
sum(dcm.NABNORMALSHUTDOWNTIME),
0
)
ELSE
COALESCE (
sum(dcm.nASDirectTimeQty),
0
)
END abnormalShutTime,
CASE
WHEN (1) = '0' THEN
COALESCE (sum(dcm.NCOSTTIME), 0)
ELSE
COALESCE (sum(dcm.nStandardTime), 0)
END standardTime,
CASE
WHEN (1) = '0' THEN
COALESCE (sum(dcm.NATTENDANCETIME), 0)
ELSE
sum(
COALESCE (dcm.NDIRECTTIME, 0) + COALESCE (dcm.nOTDirectTimeQty, 0) + COALESCE (
dcm.nDirectSupportTimeQty,
0
) + COALESCE (
dcm.nOTDirectSupportTimeQty,
0
)
)
END attendanceTime,
CASE
WHEN (1) = '0' THEN
fncalcefficiency (
sum(
COALESCE (dcm.nAttendanceTime, 0)
),
sum(
COALESCE (dcm.NSTANDARDTIME, 0)
),
0,
0
)
ELSE
fncalcefficiency (
sum(
COALESCE (dcm.NDIRECTTIME, 0) + COALESCE (
dcm.nDirectSupportTimeQty,
0
) + COALESCE (dcm.nOTDirectTimeQty, 0) + COALESCE (
dcm.nOTDirectSupportTimeQty,
0
)
),
sum(
COALESCE (dcm.NSTANDARDTIME, 0)
),
0,
0
)
END generalRate,
CASE
WHEN (1) = '0' THEN
fncalcefficiency (
sum(
COALESCE (dcm.nAttendanceTime, 0)
),
sum(COALESCE(dcm.NCOSTTIME, 0)),
sum(
COALESCE (dcm.NNORMALSHUTDOWNTIME, 0)
),
0
)
ELSE
fncalcefficiency (
sum(
COALESCE (dcm.NDIRECTTIME, 0) + COALESCE (
dcm.nDirectSupportTimeQty,
0
) + COALESCE (dcm.nOTDirectTimeQty, 0) + COALESCE (
dcm.nOTDirectSupportTimeQty,
0
)
),
sum(COALESCE(dcm.NCOSTTIME, 0)),
sum(
COALESCE (dcm.nNSDirectTimeQty, 0)
),
0
)
END processRate,
CASE
WHEN (1) = '0' THEN
fncalcefficiency (
sum(
COALESCE (dcm.nAttendanceTime, 0)
),
sum(COALESCE(dcm.NCOSTTIME, 0)),
sum(
COALESCE (dcm.NNORMALSHUTDOWNTIME, 0)
),
sum(
COALESCE (
dcm.NABNORMALSHUTDOWNTIME,
0
)
)
)
ELSE
fncalcefficiency (
sum(
COALESCE (dcm.NDIRECTTIME, 0) + COALESCE (
dcm.nDirectSupportTimeQty,
0
) + COALESCE (dcm.nOTDirectTimeQty, 0) + COALESCE (
dcm.nOTDirectSupportTimeQty,
0
)
),
sum(COALESCE(dcm.NCOSTTIME, 0)),
sum(
COALESCE (dcm.nNSDirectTimeQty, 0)
),
sum(
COALESCE (dcm.nASDirectTimeQty, 0)
)
)
END workRate
FROM
ec_XLOrganCostAndOutput dcm
INNER JOIN ec_SysOrganization org ON (
org.id = 'efcb6a64-ac7e-4da8-a959-92904e9b3318'
AND dcm.SLINKSERIALNOX LIKE CONCAT(org.SLINKSERIALNO, '%')
)
WHERE
org.istatus = '0'
AND dcm.DPRODUCTIONDATE >= str_to_date('2016-03-01', '%Y-%m-%d')
AND dcm.DPRODUCTIONDATE <= str_to_date('2016-03-31', '%Y-%m-%d')
GROUP BY
date_format(dcm.DPRODUCTIONDATE, '%Y')
ORDER BY
date_format(dcm.DPRODUCTIONDATE, '%Y')
错误信息如下:
Exception in thread "main" com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'AttendanceTime' at row 695324
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:4230)
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:2188)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:2044)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:3538)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:489)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:3240)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:2411)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2834)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2838)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212)
at test.ConnectService.main(ConnectService.java:232)

根据错误信息,说超出了,但是很奇怪的是,我把这条语句精剪,只查询2个字段又没错误:
SELECT
CONCAT(
    date_format(dcm.DPRODUCTIONDATE, '%Y'),
    '年度'
) AS productionDate,
CASE

WHEN (1) = '0' THEN
COALESCE (sum(dcm.NATTENDANCETIME), 0)
ELSE
sum(
COALESCE (dcm.NDIRECTTIME, 0) + COALESCE (dcm.nOTDirectTimeQty, 0) + COALESCE (
dcm.nDirectSupportTimeQty,
0
) + COALESCE (
dcm.nOTDirectSupportTimeQty,
0
)
)
END attendanceTime
FROM
ec_XLOrganCostAndOutput dcm
INNER JOIN ec_SysOrganization org ON (
org.id = 'efcb6a64-ac7e-4da8-a959-92904e9b3318'
AND dcm.SLINKSERIALNOX LIKE CONCAT(org.SLINKSERIALNO, '%')
)
WHERE
org.istatus = '0'
AND dcm.DPRODUCTIONDATE >= str_to_date('2016-03-01', '%Y-%m-%d')
AND dcm.DPRODUCTIONDATE <= str_to_date('2016-03-31', '%Y-%m-%d')
GROUP BY
date_format(dcm.DPRODUCTIONDATE, '%Y')
ORDER BY
date_format(dcm.DPRODUCTIONDATE, '%Y')

所以很是迷惑,不知道错误到底是什么?
  • 写回答

1条回答 默认 最新

  • ncx1259988 2017-02-12 05:20
    关注

    用JDBC执行的
    Connection conn = c.getConn();
    PreparedStatement ps = conn.prepareStatement(countSql) ;

        ResultSet rs = ps.executeQuery();
    
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集