C# 若我尝试只向数据库中插入时间值,则会追加Datevalue
表架构:C# 若我尝试只向数据库中插入时间值,则会追加Datevalue,c#,datetime,sql-server-2005,datetime-format,C#,Datetime,Sql Server 2005,Datetime Format,表架构: CREATE TABLE [dbo].[Sales_main]( [Receipt_no] [decimal](18, 0) NOT NULL, [Receipt_Date] [datetime] NOT NULL, [Receipt_Time] [datetime] NOT NULL, [User_id] [nvarchar](255) NOT NULL, [Total_amt] [float] NOT NULL, [Discount] [float] NOT NULL, [To_p
CREATE TABLE [dbo].[Sales_main](
[Receipt_no] [decimal](18, 0) NOT NULL,
[Receipt_Date] [datetime] NOT NULL,
[Receipt_Time] [datetime] NOT NULL,
[User_id] [nvarchar](255) NOT NULL,
[Total_amt] [float] NOT NULL,
[Discount] [float] NOT NULL,
[To_pay] [float] NOT NULL,
[Paid] [float] NOT NULL,
[Balance] [float] NOT NULL,
[roundoff_amount] [float] NOT NULL,
[CreatedID] [varchar](50) NULL,
[CreatedDateTime] [smalldatetime] NULL,
[UpdatedID] [varchar](50) NULL,
[UpdatedDateTime] [smalldatetime] NULL)
我的sql查询如下所示
sql = "insert into Sales_main(Receipt_no,Receipt_Date,Receipt_Time,User_id,Total_amt,Discount,To_pay,Paid,Balance,roundoff_amount,CreatedID,CreatedDateTime) values(" + bosales.Receipt_no + ",'" + bosales.Receipt_Date.ToString("dd-MMM-yyyy") + "','" + bosales.Receipt_Time.ToString("t") + "','" + bosales.User_id + "'," + bosales.Total_amt + "," + bosales.Discount_amt + "," + bosales.Amt_tobe_paid + "," + bosales.Amt_paid + "," + bosales.Balance + "," + bosales.Roundoff + ",'" + bosales.Createdid + "','" + bosales.Createddate.ToString("dd-MMM-yyyy") + "')";
此查询的输出为:
43 |27/01/2015 12:00:00 AM |01/01/1900 5:00:00 PM |admin |20 |0 |20 |20 |0 |0 |admin |27/01/2015 12:00:00 AM |NULL |NULL
我只希望插入时间值(下午5:00:00),而不是1900年1月1日下午5:00:00
请帮帮我。好吧,我想你做错了什么
用日期时间值的字符串表示形式插入日期时间值是个坏主意。
你在做什么
不要那样做阅读:
SQL Server具有定义一天时间的。MySQL也有
NET Framework的,它将当前实例的时间作为
然后您可以将您的值插入为
bosales.Receipt_Time.TimeOfDay
转到键入的时间列
而且,您应该始终使用。这种类型的字符串连接对攻击是开放的
注意:看起来您正在使用SQL Server 2005,而此版本没有时间类型。您可以阅读如何将其转换为datetime
:发布您的表模式,即创建表sqlI添加了模式。请检查我使用的是SQLServer2005,它没有时间数据类型。我尝试使用TimeOfDay属性。但是它在插入时给了我错误。@SuhasKrishna Read:UseDateTime
但是Convert
在您的sql中。我试图使用Convert.ToDateTime(bosales.Receipt\u Time.TimeOfDay)语句进行转换。它显示错误消息“无法将“System.TimeSpan”类型的对象强制转换为“System.IConvertible”。@SuhasKrishnabosales.Receipt\u Time
不是一个已存在的日期时间吗?你不需要转换它,是的。我知道。只是因为你的建议才试过的。帮我一个摆脱困境的方法
bosales.Receipt_Time.TimeOfDay