SQL SERVER 2008 R2中
字段 OccurDate datetime
查询步骤,填充Dataset 然后输出到前台
本地 win7 64位 显示格式 2016-04-12 11:09:07
服务器 win2008 R2 64位 显示格式 2016/4/12 11:09:07
为了保持一致效果,要2016-04-12 11:09:07这种,有两种办法:
1.查询视图,在视图里转换,写一段无谓的视图。。。仅仅为了时间显示。。
2.判断Datetable 数据格式
object obj = dr[i];
Type type = obj.GetType();
switch (type.Name)
{
case "DateTime":
dataRow.Add(string.Format("'{0}'", Convert.ToDateTime(obj).ToFormatString2()));
break;
default:
dataRow.Add(string.Format("'{0}'", obj));
break;
}
不知哪位仁兄,有更好解决办法,还望不吝赐教!
多谢!
可能没有表达清楚,楼下几位回复的,我都知道,而且目前也用了。
现在问题的关键是,本地和服务器显示不一样,我想知道问题出在哪,是Sqlserver 还是 Datetable 还是 程序?
怎么解决? 要一个统一方案,而不必这么一条条设置。。。
http://bbs.csdn.net/topics/390369678/
设置一下全局的语言 就可以了
这个问题我还是补充一下吧
微软的所有的默认配置 都源于System.Globalization
当程序没有人配置这些信息的时候 会根据机器的配置 去设计默认的配置
而你的问题 在于 你没有配置这个 但是你本地的机器 和服务器的机器 的一些地区 语言啊 又不一致
所以最后导致 你本地和服务器显示不一样
在显示的时候再设置显示格式,当然最好是不要使用DataSet,使用实体对象。
不管哪种方式,最好在要显示的地方再设置格式。
有没有不设置的,全部直接显示成 2016-04-12 11:09:07 这样的方法
@郭伟:
怎么和你说呢。 尽量保持数据源本来的数据类型,比如Datetime,不要在还没有使用的时候就ToString("格式")变成String了,这样不利于后续操作,如果有的话。
1.如果使用实体对象的话,可以使用DisplayFormat特性来统一设置显示格式。
2.或者在输出显示的时候设置格式。
3.设置服务器的时间格式(哈哈哈,不推荐)
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");//格式化一手可好?
Select CONVERT(varchar(100), GETDATE(), 120)
你查询时间字段的时候转换一下就好了
是操作系统的问题,你可以在控制面板里面设置
控制面板\时钟、语言和区域 -》 更改日期、时间或数字格式 -》短日期yyyy-MM-dd
格式保持一致,没必要在数据库中装换,前台没有要求固定格式,你在前台获取的时候转换成数据库格式的,看起来就一致,简单明了
数据本身是没有格式的,有格式的是你的电脑。
更准确的说,是你的数据显示逻辑(HTML\控件可以设置),如果不设置,使用的是
Windows(Linux/MACOS/IOS/ANDROID)的默认设置。
在编程里面,相关的知识点是DatetimeFormat以及CultureInfo等等。
这样说明白了吗?