让我们说机器A是app服务器,我正在运行SQL查询。 机器B,其中设置了sqlserver。他们在不同的时区。例如,机器A在IST中,机器B在CST中 现在我想在机器A中运行sql查询来获取当前时间而不是sql server当前时间。
例如。我尝试了所有这些功能,但它们返回机器B(sql server当前时间) SELECT SYSDATETIME() ,SYSDATETIMEOFFSET() ,CURRENT_TIMESTAMP ,GETDATE()
我可以通过Java获取Machine A当前时间并将其传递给sql查询但是有没有办法通过sql查询本身获取?
答案 0 :(得分:0)
没有。这是有道理的,因为SQL会将您的命令发送到服务器。因此 - 您希望SQL Server能够神奇地转到您的计算机并执行代码吗?
一般方法是,当SQL被发送到服务器时(作为字符串),所有本地处理(app服务器级别)都已完成。
同样好的编码标准会问你关心什么(时钟之外没有同步)因为所有应用程序内部时间戳都是UTC(无论服务器的时区如何),时区转换只在UI级别完成代码。
所以,不,你不想做什么,并且在大多数应用程序中都不需要,因为它们处理数据库之外的问题。
答案 1 :(得分:0)
您必须使用其他语言的DateTime类工具。
您不从数据库中查询当前时间,因为它不是存储数据或存储数据。
如果你在SQL中没有解决方案,你真的必须用Java或C#这样的语言来做,因为他们可以访问机器的时间,因为程序是在机器上运行的,因此他们可以接受它。