Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click '取服务器时间 Dim cm As SqlClient.SqlCommand cm = New SqlClient.SqlCommand("SELECT GETDATE()", Me.SqlConnection1) Me.SqlConnection1.Open() Dim NowTime As String = cm.ExecuteScalar.ToString Me.SqlConnection1.Close() '取日期和时间 Dim arg As String = "{0} {1}" Dim argDate As String = String.Format(arg, "Date", CType(NowTime, Date).ToShortDateString) Dim argTime As String = String.Format(arg, "Time", CType(NowTime, Date).ToLongTimeString) '以下设定本机日期和时间 Dim sw As System.IO.StreamWriter Dim p As System.Diagnostics.Process = New System.Diagnostics.Process Dim psI As New System.Diagnostics.ProcessStartInfo("cmd") psI.UseShellExecute = False psI.RedirectStandardInput = True psI.CreateNoWindow = True p.StartInfo = psI
p.Start() sw = p.StandardInput sw.WriteLine(argDate) sw.WriteLine(argTime) sw.Close() End Sub
难道只能在每个使用getdate的地方 dateadd(hour,xx,getdate())替换?
这个自觉写得很不错,供参考:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'取服务器时间
Dim cm As SqlClient.SqlCommand
cm = New SqlClient.SqlCommand("SELECT GETDATE()", Me.SqlConnection1)
Me.SqlConnection1.Open()
Dim NowTime As String = cm.ExecuteScalar.ToString
Me.SqlConnection1.Close()
'取日期和时间
Dim arg As String = "{0} {1}"
Dim argDate As String = String.Format(arg, "Date", CType(NowTime, Date).ToShortDateString)
Dim argTime As String = String.Format(arg, "Time", CType(NowTime, Date).ToLongTimeString)
'以下设定本机日期和时间
Dim sw As System.IO.StreamWriter
Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
Dim psI As New System.Diagnostics.ProcessStartInfo("cmd")
psI.UseShellExecute = False
psI.RedirectStandardInput = True
psI.CreateNoWindow = True
p.StartInfo = psI
p.Start()
sw = p.StandardInput
sw.WriteLine(argDate)
sw.WriteLine(argTime)
sw.Close()
End Sub
只想服务器中存储和运算都按照 我预设的时区进行。
假设服务器在欧洲,GMT+1
而现在,中国GMT+8 是12:20
那如果现在操作,服务器的getdate()将会是5:20,
但是想要数据直接为 12:20,所以看来只能dateadd(,,)函数了。
所以每不同的数据库放在不同的实例上就可以了
现在才发现MSSQL搞个数据实例的作用了
虽然不是想要最终结果,至少有进步啦。同理,每个实例下亦会加载多个数据库,可能单独为数据设置时区是不可能的了。