C# SQLServer2005中的日期时间转换问题
这里我使用的是C和SQLServer2005。我的问题是,我在SQLServer中有这样的表C# SQLServer2005中的日期时间转换问题,c#,sql-server-2005,C#,Sql Server 2005,这里我使用的是C和SQLServer2005。我的问题是,我在SQLServer中有这样的表 Status ID CreationDate AccNo Amount 1 1001 5/27/2011 7:56:16 PM 100001 686700 1 1002 5/27/2011 7:56:16 PM 10009 40000 当我从tablename中检索数据(如select*)时,日期列将显
Status ID CreationDate AccNo Amount
1 1001 5/27/2011 7:56:16 PM 100001 686700
1 1002 5/27/2011 7:56:16 PM 10009 40000
当我从tablename中检索数据(如select*)时,日期列将显示如下所示
Status ID CreationDate AccNo Amount
1 1001 2011-05-27 19:56:16.110 100001 686700
1 1002 2011-05-27 20:04:20.470 10009 40000
为什么会这样变化?如何将日期格式2011-05-27 19:56:16.110更改为5/27/2011 7:56:16 PM
谢谢,
Anuradha J日期时间列只存储日期和时间值。它不应用或存储任何格式信息 如果您需要以特定格式显示这些日期时间,那么您需要在选择期间通过使用适当的格式说明符指定该格式,或者更好,让使用结果的任何人来执行转换和格式化 查看可用于转换的格式说明符,我实际上看不到允许mm/dd/yyyy hh:mm:ss的格式说明符,因此您需要分别为日期和时间组件执行两次转换,或者如我所说,由您的C代码执行格式化。丑陋的SQL方式:
SELECT
Status,
ID,
CONVERT(varchar(16),CreationDate,101) + ' ' +
CONVERT(varchar(16),CreationDate,8) as CreationDate,
AccNo,
Amount
FROM
tablename
回答:不要更改数据库,更改使用数据库中数据的方式。在你的代码中 将检索到的结果存储在日期时间对象中,然后您可以对其执行任何操作。 数据是一样的 或者编写一个存储过程,将输出更改为您想要的内容
在TSQL中查找时间处理。在代码隐藏中,您可以执行以下操作。在不将日期转换为字符串的情况下输入日期
DateTime dt;
string Temp1 = "Your Date from database";
if (DateTime.TryParse(Temp1, out dt))
{
// If it is a valid date
string date = dt.ToShortDateString();
string time = dt.ToShortTimeString();
}