{"record":{"id":"9a11e3a5a7bec1eb","repo":"hibernate/hibernate-orm","slug":"unsupported-date-or-time-field-ctx-gettext","errorCode":null,"errorMessage":"Unsupported date or time field [{ctx.getText()}]","messagePattern":"Unsupported date or time field \\[(.+?)\\]","errorType":"exception","errorClass":"ParsingException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java","lineNumber":5029,"sourceCode":"\t\t\tcase HqlParser.YEAR ->\n\t\t\t\t//this is computed from DAY_OF_YEAR/7\n\t\t\t\t\tnew SqmExtractUnit<>( WEEK_OF_YEAR, nodeBuilder().getIntegerType(), nodeBuilder );\n\t\t\tdefault -> throw new ParsingException( \"Unsupported week field [\" + ctx.getText() + \"]\" );\n\t\t};\n\t}\n\n\t@Override\n\tpublic Object visitDateOrTimeField(HqlParser.DateOrTimeFieldContext ctx) {\n\t\tfinal var nodeBuilder = nodeBuilder();\n\t\tfinal var symbol = ((TerminalNode) ctx.getChild( 0 )).getSymbol();\n\t\treturn switch ( symbol.getType() ) {\n\t\t\tcase HqlParser.DATE -> isExtractingJdbcTemporalType\n\t\t\t\t\t? new SqmExtractUnit<>( DATE, resolveExpressibleTypeBasic( Date.class ), nodeBuilder )\n\t\t\t\t\t: new SqmExtractUnit<>( DATE, resolveExpressibleTypeBasic( LocalDate.class ), nodeBuilder );\n\t\t\tcase HqlParser.TIME -> isExtractingJdbcTemporalType\n\t\t\t\t\t? new SqmExtractUnit<>( TIME, resolveExpressibleTypeBasic( Time.class ), nodeBuilder )\n\t\t\t\t\t: new SqmExtractUnit<>( TIME, resolveExpressibleTypeBasic( LocalTime.class ), nodeBuilder );\n\t\t\tdefault -> throw new ParsingException( \"Unsupported date or time field [\" + ctx.getText() + \"]\" );\n\t\t};\n\t}\n\n\t@Override\n\tpublic Object visitTimeZoneField(HqlParser.TimeZoneFieldContext ctx) {\n\t\tfinal var nodeBuilder = nodeBuilder();\n\t\tfinal var symbol = ((TerminalNode) ctx.getChild( ctx.getChildCount() - 1 )).getSymbol();\n\t\t// should never happen\n\t\treturn switch ( symbol.getType() ) {\n\t\t\tcase HqlParser.TIMEZONE_HOUR, HqlParser.HOUR ->\n\t\t\t\t\tnew SqmExtractUnit<>( TIMEZONE_HOUR, nodeBuilder().getIntegerType(), nodeBuilder );\n\t\t\tcase HqlParser.TIMEZONE_MINUTE, HqlParser.MINUTE ->\n\t\t\t\t\tnew SqmExtractUnit<>( TIMEZONE_MINUTE, nodeBuilder().getIntegerType(), nodeBuilder );\n\t\t\tcase HqlParser.OFFSET ->\n\t\t\t\t\tnew SqmExtractUnit<>( OFFSET, resolveExpressibleTypeBasic( ZoneOffset.class ), nodeBuilder );\n\t\t\tdefault -> throw new ParsingException( \"Unsupported time zone field [\" + ctx.getText() + \"]\" );\n\t\t};\n\t}","sourceCodeStart":5011,"sourceCodeEnd":5047,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java#L5011-L5047","documentation":"Error \"Unsupported date or time field [{ctx.getText()}]\" thrown in hibernate/hibernate-orm.","triggerScenarios":"An invalid keyword/field is used in a datetime, pad, or trim expression: Unsupported date or time field [<value>]","commonSituations":"HQL queries using extract(), pad(), or trim() with a field/specification keyword that is not one of the documented values.","solutions":["The date/time field referenced is not supported in this context. Use one of the documented date/time fields for the expression."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}