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) )

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值