【发布时间】:2012-08-22 17:43:59
【问题描述】:
我有一个 DataColulmn 类型为 TimeSpan 的 DataTable。它在 SQL Server 查询中填充了一个时间列,并在屏幕上显示为 24 小时格式。我想使用表达式列将其显示为 12 小时格式 + 上午/下午,但无法做到。 我尝试使用 convert to the column 来处理字符串,但它显示了一种奇怪的格式,例如 PT20H15(即 20:15 或 8:15 pm)。如果小时是一位或两位数,时间和小时的位置会发生变化,如果小时是 00,那么它会被删除,字符串处理似乎太复杂了。我尝试只比较“HourCol > 12”之类的列值,但这会引发关于将时间跨度与 int 进行比较的错误,所以我又失败了。有没有人有不同的建议?
提前致谢。
【问题讨论】:
-
ASP.NET、WinForms、WPF 还是其他?重要的是你如何做到这一点。 DateTime 值的显示方式取决于实际显示它的程序,而不是基础值。您可以在用于将其取出的 SQL 查询中将其转换为 varchar,但这并不总是最好的方法。
-
@David 我在 ASP.NET 页面的网格上显示数据。用户可以在单独的控件上编辑数据,然后我将这些值保存回 SQL Server。我宁愿有一个表达式列,这样我就不必进行双重转换,只需更新我的数据表上的原始列......如果可能的话。