Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dane wyjściowe z SQL Server i C# są różne

Najlepszym sposobem jest sformatowanie danych wejściowych w formacie dd/MMM /rrrr. Lepiej pomaga SqlServerowi zidentyfikować miesiąc i dzień. Zdecydowanie zalecam używanie formatu MMM za każdym razem, gdy komunikujesz się z 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);

lub jeśli masz jakieś ograniczenie do wykonania, jak powyżej, przekonwertuj dane wejściowe za pomocą funkcji 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. Zapytanie SQL dla tabeli drzewa

  2. SQL Server 2008 Pusty ciąg a spacja

  3. Jak utworzyć alias tabeli w MySQL?

  4. Jaki jest najlepszy sposób na skrócenie daty w SQL Server?

  5. Co to jest zaufane połączenie?