首页新闻找找看学习计划

sql server GETDATE() 获取时间

0
悬赏园豆:5 [已解决问题] 解决于 2019-12-11 09:46

sql server在Ubuntu上面,发现通过getdate()获取的时间使用了Universal time时间,但是根据说明应该是返回本地时间。如何获取服务器本地时间?

我爱CC的主页 我爱CC | 初学一级 | 园豆:4
提问于:2019-12-03 11:53

查看一下 Sql Server 的环境变量有没有设置 TZ:cat /proc/$SQL_SERVER_PID/environ

不如隐茶去 3天前

@不如隐茶去:确实是数据库没配置TZ,用的是docker运行,在启动时需加上-e 'TZ=Asia/Shanghai'

我爱CC 2天前
< >
分享
最佳答案
0

与 ubuntu 的时区设置有关,修改一下时区试试

export TZ=Asia/Shanghai
收获园豆:5
dudu | 高人七级 |园豆:40817 | 2019-12-03 11:56

ubuntu local time 和Time zone 和RTC time 都是对的,但是在数据库中执行getdate()还是获取的UTC时间,查询到到的资料说sql server在windows 版本和Linux是没有变化的。不知道Docker 运行的有没有影响。

我爱CC | 园豆:4 (初学一级) | 2019-12-11 08:59
其他回答(1)
0

看软件(操作系统),时间 和 时区。如果两者一致就对了。

你所谓“返回本地时间”,是客户端还是服务端?!比如该app在客户端如果做全球化他的时间显示出来应该是这么实现:获取UTC->获取本地(该APP的OS)时区->然后再格式化显示出来;

你看到的不一定是数据库真实的存储数字,你去斟酌斟酌哈~~

如果实在觉得麻烦,我有时候根本就不想用这种类型,直接自行代码控制用long,统一在服务器用utc描述。尤其特么的DateTime在EF中类型扯淡不是11映射,简单方便得多。

花飘水流兮 | 园豆:10340 (专家六级) | 2019-12-06 02:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册