HQL语句中的类型转换

本文介绍如何在SQL中进行字符串到整数、日期类型的转换,并展示了如何计算两个日期之间的年份差值。此外,还提供了一份详细的Java、Hibernate与SQL Server数据类型之间的映射表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串转整行:cast(string1 as integer)

转日期:cast(string2 as date)

日期年差值:cast(year('2012-04-18')-year(e.birthday) as integer

" SELECT new cn.enn.hr.empleave.pojo.EmpQuit(" +
      "q.applyusername,"+
      "cast(q.applyuserid as integer),"+
      "q.companyname,"+
      "q.deptname,"+
      "q.applyposition,"+
      "q.gender,"+
      "(select cast(year('2012-04-18')-year(e.birthday) as integer)  from TEmployee e where e.id=q.applyuserid) as age  ,"+
      "cast(q.enterdate as date),"+
      "q.applylevel,"+
      "(select cast(e2.contractdatebegin as date) from TEmployeeAtt e2 where e2.employeeid=q.applyuserid) as contractdatebegin ,"+
      "cast(q.employeeenddate as date),"+
      "q.quittype,"+
      "cast(q.status as integer),"+
      "q.statusname,"+
      "cast(q.starttime as date)  ) ";

 

 

java,hibernate和sql server对应的数据类型表

                                                                                java                        hibernate   sqlserver

byte、java.lang.BytebyteTINYINT
short、java.lang.ShortshortSMALLINT
int、java.lang.IntegerintegerINGEGER
long、java.lang.LonglongBIGINT
float、java.lang.FloatfloatFLOAT
double、java.lang.DoubledoubleDOUBLE
java.math.BigDecimalbig_decimalNUMERIC
char、java.lang.CharactercharacterCHAR(1)
boolean、java.lang.BooleanbooleanBIT
java.lang.StringstringVARCHAR
boolean、java.lang.Booleanyes_noCHAR(1)('Y'或'N')
boolean、java.lang.Booleantrue_falseCHAR(1)('Y'或'N')
java.util.Date、java.sql.DatedateDATE
java.util.Date、java.sql.TimetimeTIME
java.util.Date、java.sql.TimestamptimestampTIMESTAMP
java.util.CalendarcalendarTIMESTAMP
java.util.Calendarcalendar_dateDATE
byte[]binaryVARBINARY、BLOB
java.lang.StringtextCLOB
java.io.SerializableserializableVARBINARY、BLOB
java.sql.ClobclobCLOB
java.sql.BlobblobBLOB
java.lang.ClassclassVARCHAR
java.util.LocalelocaleVARCHAR
java.util.TimeZonetimezoneVARCHAR
java.util.CurrencycurrencyVARCHAR
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值