|  | 
              
               
                  | 最佳回答 | 
               
                            
               
                  
              
              
                  | 
                        1
                       | 
                        
                          | 
                               张洪威Lv6高级互助发布于2020-8-10 15:49 |  
                            | testdate between to_date(${if(len(开始日期)=0,year(结束日期)+"-01-01",开始日期)},'yyyy-mm-dd') and to_date('${结束日期}','yyyy-mm-dd') |   
                           |  |  | 
                    
                       
              
                |  | 
              
               
                  | 最佳回答 | 
               
                            
               
                  
              
              
                  | 
                        0
                       | 
                        
                          | 
                               ColdmanLv6高级互助发布于2020-8-10 15:47 |  
                            | 使用case when来判断开始日期字段,如果为空,截取结束日期年份拼接“-01-01” |   
                           | 
   
      
          
            
       
      
        
                 
                 
                 
                 
            
            
             
                  
                                                     	
                       
                          lincoder(提问者) 你好,我完善了下,具体的可以写一下吗?
                          Coldman 回复 lincoder(提问者) 你是参数传递的话这么写to_date(${IF(LEN(开始日期) = 0,substr(\'${结束日期}\',1,4)||\'-01-01\',开始日期)},\'yyyy-mm-dd\') and to_date(\'${结束日期}\',\'yyyy-mm-dd\')
注意字段格式就行 |  | 
                    
                       
              
                |  | 
              
               
                  | 最佳回答 | 
               
                            
               
                  
              
              
                  | 
                        0
                       | 
                        
                          | 
                               zjc@Lv3初级互助发布于2020-8-10 16:07 |  
                            | 一看你的sql应该是oracle数据库,这么写 testdate between to_date(${IF(LEN(开始日期) == 0,SUBSTR('${结束日期}',1,5)||'01-01',开始日期)},'yyyy-mm-dd') and to_date('${结束日期}','yyyy-mm-dd') |   
                           | 
   
      
          
            
       
      
        
                 
                 
                 
                 
            
            
             
                  
                                                     	
                       
                          lincoder(提问者) 预览报错
                          zjc@ 回复 lincoder(提问者) 我这么写也报错吗?如果报错的话可能是你设置的参数返回值格式和sql中不对应,你看着设置对应一致 |  | 
                    
                       
              
                |  | 
              
               
                  | 最佳回答 | 
               
                            
               
                  
              
              
                  | 
                        0
                       | 
                        
                          | 
                               axingLv6专家互助发布于2020-8-10 21:29 |  
                            | testdate between to_date('${IF(LEN(开始日期)=0,DATEINMONTH(结束日期,1),开始日期)}','yyyy-mm-dd') and to_date('${结束日期}','yyyy-mm-dd')
 |   
                           |  |  |