当前位置:数据库 > SQLServer >>

想把下面sqlserver中的查询改成oracle中的写法,可是一到Convert那里就报:缺失表达式.在oracle中要怎么写

这是sqlserver中的: select Isnull(sum(isnull(ReceiveWeight,0)),0) as ReceiveWeight from t_Measure where Convert(char(10),MeasureDateTime,120) <='" + txtDates.Text.Trim() + "' 这是我在oracle中写的: select nvl(sum(nvl(receiveweight,0)),0) as ReceiveWeight from t_Measure where Convert(varchar2(10),measure_Datetime,120) <='"+Date+"'
答案:select Nvl(Sum(Nvl(ReceiveWeight, 0)), 0) ReceiveWeight 
  from t_Measure 
 where To_Char(MeasureDateTime, 'yyyy-mm-dd') <= '" + txtDates.Text.Trim() + "'
其他:oracle中转换函数为to_char(); oracle里没有convert函数,varchar2转date类型的话用to_date函数,date类型转字符串用to_char函数。
to_date(String, 格式),返回值是date类型
to_char(Date, 格式),返回值是字符串
格式:
        Year:      
        yy two digits 两位年                显示值:07
        yyy three digits 三位年                显示值:007
        yyyy four digits 四位年                显示值:2007
            
        Month:      
        mm    number     两位月              显示值:11
        mon    abbreviated 字符集表示          显示值:11月,若是英文版,显示nov     
        month spelled out 字符集表示          显示值:11月,若是英文版,显示november 
          
        Day:      
        dd    number         当月第几天        显示值:02
        ddd    number         当年第几天        显示值:02
        dy    abbreviated 当周第几天简写    显示值:星期五,若是英文版,显示fri
        day    spelled out   当周第几天全写    显示值:星期五,若是英文版,显示friday        
        ddspth spelled out, ordinal twelfth 
             
              Hour:
              hh    two digits 12小时进制            显示值:01
              hh24 two digits 24小时进制            显示值:13
              
              Minute:
              mi    two digits 60进制                显示值:45
              
              Second:
              ss    two digits 60进制                显示值:25
              
              其它
              Q     digit         季度                  显示值:4
              WW    digit         当年第几周            显示值:44
              W    digit          当月第几周            显示值:1
              
        24小时格式下时间范围为: 0:00:00 - 23:59:59....      
        12小时格式下时间范围为: 1:00:00 - 12:59:59 .... 
            
1. 日期和字符转换函数用法(to_date,to_char)
         
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual;   //日期转化为字符串   
select to_char(sysdate,'yyyy') as nowYear   from dual;   //获取时间的年   
select to_char(sysdate,'mm')    as nowMonth from dual;   //获取时间的月   
select to_char(sysdate,'dd')    as nowDay    from dual;   //获取时间的日   
select to_char(sysdate,'hh24') as nowHour   from dual;   //获取时间的时   
select to_char(sysdate,'mi')    as nowMinute from dual;   //获取时间的分   
select to_char(sysdate,'ss')    as nowSecond from dual;   //获取时间的秒 
    
select to_date('2004-05-07 13:23:44','yyyy-mm-dd hh24:mi:ss')    from dual// 

上一个:在安装sqlserver 2005数据库是出现问题,求解!
下一个:我的本地数据库是SQLSERVER 2005的 服务器上面的是 SQLSERVER 2000的,请问我怎么弄可以将本地的数据搞

Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,