Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQLServer2005中的日期时间转换问题_C#_Sql Server 2005 - Fatal编程技术网

C# SQLServer2005中的日期时间转换问题

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*)时,日期列将显

这里我使用的是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     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();
}