`
yaojialing
  • 浏览: 252807 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • JAVA
阅读更多

以前都是连接的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) )

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics