我有一个gridview和一个SqlDataSource
。将字符串转换为dd.mm.yyyy的SqlDataSource更新语句hh:mm
在SqlDataSource
的更新语句我试图列的字符串转换成datetime与此:
Date = Convert(DateTime, @Date, 104)
//this converts the string to mm.dd.yyyy .
我找不到mm.dd.yyyy hh:mm .
我有一个gridview和一个SqlDataSource
。将字符串转换为dd.mm.yyyy的SqlDataSource更新语句hh:mm
在SqlDataSource
的更新语句我试图列的字符串转换成datetime与此:
Date = Convert(DateTime, @Date, 104)
//this converts the string to mm.dd.yyyy .
我找不到mm.dd.yyyy hh:mm .
你的问题表明你正在使用一个GridView和一个DataSource。
我假设你的源数据是在SQL Server中的日期时间格式。
如果是这样,请将其保留为该格式,否则,在返回时将其转换为DateTime。
做不尝试将其转换为字符串上的SQL Server结束或在你的DataTable运行合格,并使用C#转换为字符串。这是错误的做法。
所有你需要做的是设置DataFormatString你的GridView的绑定列列像这样:
BoundField bf = new BoundField();
bf.DataField = "xxxxx";//The field from your DataSource you are binding to.
bf.HeaderText = "yyyyy";//The column header text of your GridView.
bf.DataFormatString = "{0:MM.dd.yyyy hh:mm}";
gv.Columns.Add(bf);//Add the column to your GridView.
我还要补充的是,通过这样做,如果你启用排序,那么它会正常工作。如果你传递一个表示日期的字符串值,它将对该字符串值进行排序(在你的情况下),这将是不正确的,因为它会在年份之前的月份和日期进行排序。 – MikeTeeVee
对不起,在这里插入,但我不能评论你删除的答案。显然,我并不是唯一一个认为你的答案不正确的人,而投票的目的是告诉你这是不正确的,并让你有机会解决它。一旦你解决了这个问题,反对票可以不做,并转换成加票。但是,不正确的答案不能留下任何反对票,因为其他读者可能认为这是正确的(他们不一定会阅读评论)。我已经把这个答案作为真诚的表示。你也没有帮助我,这不是我的问题。 –
,以显示它的代码与所需格式的网格,使用yourDate.ToString(yourFormat)
,例如:
DateTime.Today.ToString("mm.dd.yyyy")
DateTime MyDateTime;
MyDateTime = new DateTime();
MyDateTime = DateTime.ParseExact(MyString, "MM.dd.yyyy hh:mm",
CONVERT(varchar(17),Date,113)
利用这一点,它会得到,2011 12:58
或者使用11月29日;
SELECT CONVERT(varchar(17),OrderDate,105)+' '+CONVERT(varchar(17),OrderDate,108) as Date FROM Orders
它会; 29-11-2011 12:58:48
不要忘了接受任何答案,帮助你 – Boomer