我需要一些关于从数据表中检索记录的建议。
我有一个表包含列 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
我想问你们所有人,控制面板中的区域选项字段会影响查询输出吗?
当我改变这个时,我发现结果与我在服务器上的结果相同。
答案 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”);