select * tablename以两种不同的格式返回datetime

时间:2012-12-11 05:25:29

标签: asp.net sql sql-server sql-server-2008

我需要一些关于从数据表中检索记录的建议。 我有一个表包含列 dateDBO DateTime 。我在两个不同的场景中使用像select * from tblUsers这样的选择查询。在一个(服务器)中我得到dateDBO格式比如01/01/2012 12:00:00 AM,在其他(本地)场景中我就像01-Jan-00 12:00:00 AM

任何人都可以告诉我这是怎么发生的我知道我可以通过使用强制转换或转换指定特定的列名来解决此问题,但是此select * tblUsers会给我一些神秘的结果怎么??

*我从我的asp.net(3.5)应用程序中调用它。

提前感谢。

抱歉英语。

更新 ::我在服务器上部署时的相同代码反映的是01/01/2012 12:00:00 AM这个日期,但在我的本地就像01-Jan-00 12:00:00 AM一样。所以我很困惑这个是由于某些日期&时间设置更改以及此日期时间更改如何影响asp.net选择。 我的.net代码

//set the command
objCommand = new OleDbCommand(strQueryText, objConnection);
//set the command type
objCommand.CommandType = CommandType.Text;
OleDbDataAdapter objDataAdapter = new leDbDataAdapter(objCommand); 
DataSet objLcDataSet = new DataSet(); 
objDataAdapter.FillSchema(objLcDataSet, SchemaType.Mapped); 
int lngRetVal = objDataAdapter.Fill(objLcDataSet);

结果数据::

dateDBO
1959-11-05 00:00:00.000 
1965-12-13 00:00:00.000 
1979-08-01 00:00:00.000 
1972-02-15 00:00:00.000 
1978-12-23 00:00:00.000 
1985-09-04 00:00:00.000 
1986-04-19 00:00:00.000 
1966-03-10 00:00:00.000 
1959-08-30 00:00:00.000

我想问你们所有人,控制面板中的区域选项字段会影响查询输出吗?

当我改变这个时,我发现结果与我在服务器上的结果相同。

2 个答案:

答案 0 :(得分:2)

试试这个:

SELECT REPLACE(CONVERT(VARCHAR(9),dateDBO,6),'',' - ')AS [DD-Mon-YY],CONVERT(VARCHAR(8),dateDBO,108)为[HH:MM] :SS],子串(转换(varchar(30),dateDBO,9),25,2)来自tblUser

然后你需要加上这三列。

有关详细信息,请参阅 http://www.sql-server-helper.com/tips/date-formats.aspx

答案 1 :(得分:0)

试试这个 dataset.table [0] .rows [0] [ “dateDBO”]的ToString( “DD / MM / YYYY”);