2013-06-23 74 views
0

轉換日期和/或時間下面是我的SQL查詢SQL錯誤發生:轉換失敗時從字符串

請建議一些

select p.e_id as Employee_Id, p.ename as Name,p.eadd1 as Address, 
p.eprof as Profession,p.eactive as salary, 
(select count (d.pr_id) from employee_presency d 
where d.e_id = p.e_id and d.t_date 
between '01-06-2013' and '31-06-2013') 
    as presency,(select sum(c.payment) from emp_payment c 
    where c.e_id = p.e_id and c.pay_date 
    between'01-06-2013' 
    and '31-06-2013') as Salary from Employee p 
+0

我建議你試着看看其他類似的問題。其中一些現在位於右側的*相關*部分。 –

+0

版本mssql 2008 – user1820110

+0

對不提供服務器詳細信息 – user1820110

回答

0

也許你的數據庫認爲沒有第31個月。

考慮使用yyyy-mm-dd日期符號,它沒有日期v.s.月問題。例如:

'2013-06-31' 
2

你沒有提供足夠的信息來知道。但是大多數dbms都有默認的日期格式,如果這與你使用的格式不同,你會得到某種錯誤信息。

例如,在Oracle中,您可以使用類似to_date('31-06-2013', 'dd-mm-yyyy')的表達式。 (Oracle date format codes

另一種可能性是將一個或多個「t_date」和「pay_date」列聲明爲char(n)或varchar(n)而不是聲明爲「date」,並且它們包含一些可以不會被視爲有效的日期。一個varchar()列可能包含一個值,比如''31-06-2 @ 1#'或'wibble'。

+0

加1爲wibble。 –

相關問題