`

hql中常用函數CAST 带来的日期转换问题[转]

阅读更多
以前都是连接的ORACLE,MYSQL数据库,写程序一直也没出现过什么问题,就在近期用SQL SERVER出了点问题。

用hibernate操作sqlserver数据库,数据库表中有个日期字段是字符型,当查询一定时间范围内的数据时需要转换日期,这里需要注意了hibernate CAST函数支持转换类型在SQL SERVER中不一定行。
如:and cast(a.enterdate as date) >= cast('2009-01-01' as date) 这条语句转换的类型是date,但它在SQL SERVER中却不能执行,因为要把date类型改成datetime型。



CAST函数的用法

CAST 函数 [数据类型转换]

功能:
返回转换为提供的数据类型的表达式的值。
语法:

CAST(expression AS data type)

参数:
expression     要转换的表达式

data type       目标数据类型

用法:

如果未指定字符串类型的长度,数据库服务器将选择适当的长度。如果没有为十进制转换指定精度和小数位数,则数据库服务器将选择适当的值。

示例
下面的函数确保字符串被用作日期:
SELECT CAST( '2000-10-31' AS DATE )

计算表达式 1 + 2 的值,并将结果转换为单字符字符串。
SELECT CAST( 1 + 2 AS CHAR )

可以使用 CAST 函数缩短字符串:
SELECT CAST( 'Surname' AS CHAR(5) )

原文地址: http://yaojialing.iteye.com/blog/521433




下边是对应的cast类型


{[Ljava.lang.Byte;=org.hibernate.type.WrapperBinaryType@2d8535
java.lang.Object=org.hibernate.type.AnyType@848be7
java.lang.Character=org.hibernate.type.CharacterType@1fd11f0
time=org.hibernate.type.TimeType@1a4acc9
clob=org.hibernate.type.ClobType@4c0090
serializable=org.hibernate.type.SerializableType@1b911fe
date=org.hibernate.type.DateType@14c4f11
boolean=org.hibernate.type.BooleanType@1b0c0b8
calendar=org.hibernate.type.CalendarType@db1a12
locale=org.hibernate.type.LocaleType@8cb608
object=org.hibernate.type.AnyType@848be7
char=org.hibernate.type.CharacterType@1fd11f0
string=org.hibernate.type.StringType@11d5c7d
java.util.GregorianCalendar=org.hibernate.type.CalendarType@db1a12
imm_dbtimestamp=org.hibernate.type.AdaptedImmutableType@2e74d
float=org.hibernate.type.FloatType@9f7456
timestamp=org.hibernate.type.TimestampType@c0468e
Character[]=org.hibernate.type.CharacterArrayType@8ef6f1
Byte[]=org.hibernate.type.WrapperBinaryType@2d8535
byte[]=org.hibernate.type.BinaryType@1f678b6
integer=org.hibernate.type.IntegerType@6897b6
class=org.hibernate.type.ClassType@6f344e
java.util.Date=org.hibernate.type.TimestampType@c0468e
java.sql.Date=org.hibernate.type.DateType@14c4f11
imm_binary=org.hibernate.type.AdaptedImmutableType@d32793
long=org.hibernate.type.LongType@cb5695
java.sql.Timestamp=org.hibernate.type.TimestampType@c0468e
char[]=org.hibernate.type.CharArrayType@1a15add
java.lang.Double=org.hibernate.type.DoubleType@547c9f
text=org.hibernate.type.TextType@c1d807
imm_calendar=org.hibernate.type.AdaptedImmutableType@4dbd2f
java.lang.Integer=org.hibernate.type.IntegerType@6897b6
timezone=org.hibernate.type.TimeZoneType@1bf9450
imm_date=org.hibernate.type.AdaptedImmutableType@a21e6b
short=org.hibernate.type.ShortType@1693a93
[Ljava.lang.Character;=org.hibernate.type.CharacterArrayType@8ef6f1
[B=org.hibernate.type.BinaryType@1f678b6
big_decimal=org.hibernate.type.BigDecimalType@17b22ed
byte=org.hibernate.type.ByteType@131f86a
java.util.TimeZone=org.hibernate.type.TimeZoneType@1bf9450
currency=org.hibernate.type.CurrencyType@1ac23df
big_integer=org.hibernate.type.BigIntegerType@670e89
[C=org.hibernate.type.CharArrayType@1a15add
character=org.hibernate.type.CharacterType@1fd11f0
java.math.BigInteger=org.hibernate.type.BigIntegerType@670e89
imm_calendar_date=org.hibernate.type.AdaptedImmutableType@1eb635a
double=org.hibernate.type.DoubleType@547c9f
java.sql.Time=org.hibernate.type.TimeType@1a4acc9
java.io.Serializable=org.hibernate.type.SerializableType@1b911fe
java.lang.Byte=org.hibernate.type.ByteType@131f86a
java.util.Calendar=org.hibernate.type.CalendarType@db1a12
java.lang.Float=org.hibernate.type.FloatType@9f7456
java.lang.Boolean=org.hibernate.type.BooleanType@1b0c0b8
java.lang.String=org.hibernate.type.StringType@11d5c7d
blob=org.hibernate.type.BlobType@c7b2e6
java.lang.Short=org.hibernate.type.ShortType@1693a93
java.lang.Class=org.hibernate.type.ClassType@6f344e
imm_serializable=org.hibernate.type.AdaptedImmutableType@b255ef
java.math.BigDecimal=org.hibernate.type.BigDecimalType@17b22ed
int=org.hibernate.type.IntegerType@6897b6
java.lang.Long=org.hibernate.type.LongType@cb5695
java.sql.Clob=org.hibernate.type.ClobType@4c0090
java.util.Currency=org.hibernate.type.CurrencyType@1ac23df
dbtimestamp=org.hibernate.type.DbTimestampType@27f088
imm_time=org.hibernate.type.AdaptedImmutableType@208657
calendar_date=org.hibernate.type.CalendarDateType@153cc48
java.util.Locale=org.hibernate.type.LocaleType@8cb608
true_false=org.hibernate.type.TrueFalseType@88b5b5
java.sql.Blob=org.hibernate.type.BlobType@c7b2e6
binary=org.hibernate.type.BinaryType@1f678b6
yes_no=org.hibernate.type.YesNoType@1518fc9
imm_timestamp=org.hibernate.type.AdaptedImmutableType@1b6f492}

(FROM :http://yangkun0318.blog.163.com/blog/static/1318094332011524512212/)
分享到:
评论

相关推荐

    HQL常用函数

    在本文中,我们将详细介绍HQL中的一些常用函数及其用法。 #### 数学函数 1. **ABS(column_name)**:此函数用于获取指定列值的绝对值。例如,`ABS(-5)`将返回`5`。 2. **SQRT(column_name)**:此函数用于计算指定...

    HQL常用函数大全.docx

    ### HQL常用函数大全 #### 一、关系运算 在Hive SQL (HQL) 中,关系运算是处理数据查询的基础。以下列出的关系运算符帮助用户进行数据比对。 ##### 1. 等值比较 (`=`) **语法**:`A = B` **操作类型**:所有...

    Hive函数大全.pdf

    Hive允许将一种数据类型转换为另一种,例如`CAST(a AS INT)`将字符串a转换为整数,`TO_DATE(date_string)`将日期字符串转换为日期类型。 四、条件函数 `IF()`、`CASE WHEN THEN ELSE END`等函数允许根据条件执行...

    Hive常用函数

    - **简单函数**:这些函数处理单条记录,包括关系运算、数学运算、逻辑运算、数值计算、类型转换、日期函数、条件函数、字符串函数等。 - **聚合函数**:这类函数处理多条记录,如 `sum()` 求和、`count()` 求数据...

    hive 函数大全

    - **转换函数**:TO_DATE, TO_TIMESTAMP, CAST(用于类型转换)。 - **字符串函数**:CONCAT, SUBSTRING, LENGTH, TRIM, REPLACE, LOWER, UPPER等。 - **数值函数**:ABS, SQRT, CEIL, FLOOR, ROUND等。 - **...

    HIVE函数详解大全

    2. 转换函数:`TO_DATE`, `DATE_FORMAT`, `CAST`等,用于日期和类型转换。 3. 字符串函数:`CONCAT`, `SUBSTRING`, `TRIM`, `UPPER`, `LOWER`,用于字符串操作。 4. 条件函数:`IF`, `CASE WHEN THEN ELSE END`,...

    HQL语句的用法

    HQL还支持排序(order by)、分页(first result和max results)、类型转换(cast)、集合操作(in、any、all、some)等高级特性,使得它能够处理复杂的查询需求。 总之,HQL作为Hibernate的一部分,提供了强大的...

    hive的函数大全.rar

    4. **日期时间函数**:Hive支持对日期和时间进行操作的函数,如`DATE_ADD()`(增加日期)、`DATEDIFF()`(计算日期差)、`FROM_UNIXTIME()`(将Unix时间戳转换为日期)和`TO_DATE()`(转换为日期格式)。 5. **聚合...

    hive函数大全.7z

    - **转换函数**:如CAST, TO_DATE等,用于数据类型的转换。 - **聚合函数**:如COUNT, SUM, AVG, MIN, MAX等,用于统计计算。 - **分组函数**:如GROUP BY, DISTRIBUTE BY, SORT BY等,用于数据分组和排序。 - *...

    Hibernate 函数 ,子查询 和原生SQL查询

    4. **转换函数**:`cast()`函数可以将一个表达式转换为另一种类型,如将字符串转换为整型。 **子查询** 子查询是嵌套在另一个查询中的查询,它可以作为查询的一部分返回单个值、多个值或整个结果集。在Hibernate中...

    【63课时完整版】大数据实践HIVE详解及实战

    22.Hive中使用自定义UDF实现日期格式转换 23. HiveServer2的介绍及三种连接方式 24.Hive元数据、fetch task和严格模式的介绍 第3章:Sqoop Sqoop及用户行为分析案例 25.CDH版本框架的介绍 26. CDH版本框架的环境...

    hive数据类型共6页.pdf.zip

    然而,显式转换需要使用 `CAST` 函数,如 `CAST(column AS INT)`。 5. **数据类型的存储与优化** 选择合适的数据类型对于存储效率和查询性能至关重要。例如,使用 INT 而不是 BIGINT 可以节省存储空间;对于存储...

    Impala用户指南

    - **转换函数**:如CAST(类型转换)、TO_DATE(日期转换)等。 - **日期函数**:如DATE_ADD(日期加法)、DATE_SUB(日期减法)等。 - **条件函数**:如IF(条件表达式)、CASE WHEN(多条件判断)等。 - **字符函数**:如UPPER...

    传统数据库笔记-思维导图知识点

    在数据类型转换中,我们可以使用隐式转换和强制转换。例如,将字符串转换为整数可以使用CAST函数,`CAST('1' AS INT)`。 操作语言 操作语言是指用于查询和操作数据库的语言。在传统数据库中,操作语言与MySQL查询...

    hive解决问题方案

    - **`CAST` 函数**:用于转换数据类型。 ```sql CAST(s AS INT); ``` #### 五、锁管理 - **查看锁定情况**: ```sql SHOW LOCKS; ``` #### 六、正则表达式处理 1. **`REGEXP`**: - 语法:`A REGEXP B` ...

    Hive使用手册Hive使用手册

    - **Hive类型转换** 在创建表或处理数据时,可能需要进行类型转换,这可以通过HQL的CAST函数实现。 3. **Hive创建/删除数据库** - **创建数据库** 用CREATE DATABASE语句,例如:`CREATE DATABASE mydb;` - **...

    Java语言基础下载

    数据类型转换函数CAST和CONVERT 298 分组查询 299 五大约束 301 索引 303 数据库的备份与恢复 304 内容总结 308 独立实践 309 第十八章:数据库(三) 310 学习目标: 310 存储过程 311 触发器 313 函数 314 规则 ...

    Hive用户指南(Hive_user_guide)_中文版

    - **CLI (Command Line Interface)**:这是最常用的交互方式,可以直接在命令行中执行HQL语句,适合于单机环境下的测试和开发。 - **Client**:用于连接远程HiveServer的服务端,适用于分布式环境中。 - **WUI ...

Global site tag (gtag.js) - Google Analytics