Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Изходът от SQL Server и C# е различен

Най-добрият начин е да форматирате въведеното в dd/MMM /yyyy формат. По-добре помага на SqlServer да идентифицира месеца и деня. Горещо препоръчвам да използвате MMM формат винаги, когато комуникирате със SqlServer.

DateTime fromDate, toDate;
fromDate = DateTime.Parse(dtpFrom.Text);
toDate = DateTime.Parse(dtpTo.Text);

SqlCommand objCmd = new SqlCommand("SELECT CONVERT(char(80), i.InvDate,3) AS InvDate, 
i.InvoiceNo,
i.EmployerCode,
i.TaxAmount + i.SubTotal AS Amount,
'' AS Payment,
pd.GivenName 
FROM    dbo.Invoice i 
INNER JOIN dbo.PatientDetails pd ON (pd.MedicalRecordID = i.MedicalRecordID) 
WHERE datediff(d, '" + fromDate.ToString("dd/MMM/yyyy") + "', i.InvDate) >=0  
AND datediff(d, '" + toDate.ToString("dd/MMM/yyyy") + "', i.InvDate) <=0", objConn);

или ако имате някакво ограничение да направите както по-горе, конвертирайте входа с помощта на CONVERT()

SqlCommand objCmd = new SqlCommand("SELECT CONVERT(char(80), i.InvDate,3) AS InvDate, 
i.InvoiceNo,
i.EmployerCode,
i.TaxAmount + i.SubTotal AS Amount,
'' AS Payment,
pd.GivenName 
FROM    dbo.Invoice i 
INNER JOIN dbo.PatientDetails pd ON (pd.MedicalRecordID = i.MedicalRecordID) 
WHERE datediff(d, CONVERT(datetime, '" + dtpFrom.Text + "', 105 ), i.InvDate) >=0  
AND datediff(d, CONVERT(datetime, '" + dtpTo.Text + "', 105 ), i.InvDate) <=0", objConn);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Получаване на схемата за таблица

  2. Кой е най-дългият възможен телефонен номер в световен мащаб, който трябва да взема предвид в SQL varchar(дължина) за телефона

  3. Как да вмъкнете няколко реда в таблица въз основа на диапазон от числа

  4. Грешка - транзакцията, свързана с текущата връзка, е завършена, но не е изхвърлена

  5. Резултати от непоследователен курсор при преминаване през бази данни