sql >> データベース >  >> RDS >> Sqlserver

SQL Server と C# からの出力が異なる

    最善の方法は、入力を dd/MMM でフォーマットすることです /yyyy 形式。 SqlServer が月と日を識別するのに役立ちます。 SqlServer と通信するときは常に MMM 形式を使用することを強くお勧めします。

    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. DelphiをSalesforce.comに接続する

    2. Drupal6で定義された分類用語ごとに最新のノードを選択します

    3. OracleServerで文字列の最初の文字を削除します

    4. SQL行数