简体   繁体   English

问题:从字符串转换日期和/或时间时转换失败

[英]Problem: Conversion failed when converting date and/or time from character string

I'd like to get the total amount of purchases according to the current month, but in my SQL Server database I set the date field to write nvarchar(50).我想根据当月获取购买总额,但是在我的 SQL 服务器数据库中,我将日期字段设置为写入 nvarchar(50)。 When the code is executed, I get an error:执行代码时,出现错误:

Conversion failed when converting date and/or time from character string.从字符串转换日期和/或时间时转换失败。

Is there a way to change the code to make it accept nvarchar(50) field type but I don't want to change it from database to date type I want it to work on nvarchar(50) type.有没有办法更改代码以使其接受 nvarchar(50) 字段类型,但我不想将其从数据库更改为日期类型,我希望它适用于 nvarchar(50) 类型。

Code:代码:

int month = Convert.ToInt32(DateTime.Now.Month.ToString());
DataTable tblItems_40 = new DataTable();
tblItems_40 = db8.readData("SELECT  SUM(Total) FROM Buy_Detalis WHERE MONTH(Date) 
         ='" + month + "' ", "");
tblItems8 = db8.readData("SELECT * From Buy_Detalis WHERE Date ='" + 
         month.ToString() + "'", "");
if (tblItems8.Rows.Count <= 0)
{
    labelControl6.Text = "0.ج.م";
}
else if (tblItems8.Rows.Count >= 1)
{
    labelControl6.Text = (tblItems_40.Rows[0][0].ToString)();
    labelControl6.Text = Decimal.Parse(labelControl6.Text).ToString("C");
}

I came up with this solution and wanted to share it with yous and it worked great for me我想出了这个解决方案并想与您分享它对我来说非常有用

DataTable tblItems_40 = new DataTable();
        string d5 = DateTime.Now.Month.ToString();
        string d6 = DateTime.Now.Year.ToString();
        tblItems_40 = db4.readData("SELECT YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)) as SalesYear,MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) as SalesMonth,sum(Buy_Detalis.Total) AS TotalSales FROM Buy_Detalis where YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)) ='" + d6 + "' AND MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) ='" + d5+ "'  GROUP BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103))  ", "");
        tblItems8 = db4.readData("SELECT sum(Buy_Detalis.Total) AS TotalSales FROM Buy_Detalis GROUP BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103)) ORDER BY YEAR(CONVERT(date,[Buy_Detalis].[Date], 103)), MONTH(CONVERT(date,[Buy_Detalis].[Date], 103))", "");
        if (tblItems8.Rows.Count <= 0)
        {
            labelControl6.Text = "0.ج.م";
        }
        if (tblItems8.Rows.Count >= 1)
        {
            labelControl6.Text = (tblItems_40.Rows[0][2].ToString)();
            labelControl6.Text = Decimal.Parse(labelControl6.Text).ToString("C");
        }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and /or time from character string 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and /or time from character string 从字符串错误4转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string error 4 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string 错误“从字符串转换日期和/或时间时转换失败” - Error “Conversion failed when converting date and/or time from character string” 从字符串转换日期和/或时间时,DateTime转换失败 - DateTime conversion failed when converting date and/or time from character string 从字符串#2转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string #2 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string 从Winforms中的字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string in winforms 从字符串转换日期和/或时间时转换失败 - Conversion failed when converting date and/or time from character string
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM