0

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

任何人都可以告诉我这是怎么发生的我知道我可以通过使用Cast 或 Convert指定特定的列名来解决这个问题,但这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

请问大家,控制面板中的Regional Option字段会影响查询输出吗??

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

4

2 回答 2

2

尝试这个:

SELECT REPLACE(CONVERT(VARCHAR(9), dateDBO, 6), '', '-') AS [DD-Mon-YY], CONVERT(VARCHAR(8), dateDBO, 108) as [HH:MM:SS] , substring(convert(varchar(30), dateDBO , 9), 25, 2) 来自 tblUser

然后你需要加上这三列。

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

于 2012-12-11T07:01:56.903 回答
0

试试这个 dataset.table[0].rows[0]["dateDBO"].ToString("dd/MM/yyyy");

于 2012-12-11T06:32:11.060 回答