|
16.08.2007, 11:06 | #1 |
Участник
|
Проблема: Есть запись в Microsoft Navision, в которой есть поле "Дата" со значением 15.08.07 17.15.00. Когда мы делаем выборку этой записи с помощью SQL, выдает результаты только в поле «Дата» время на 3 часа меньше: 2007-08-15 14:15:00. В чем проблема?
|
|
16.08.2007, 12:07 | #2 |
Участник
|
а время на сервере и клиенте синхронизировано?
|
|
16.08.2007, 12:14 | #3 |
Участник
|
Цитата:
а время на сервере и клиенте синхронизировано?
|
|
16.08.2007, 14:14 | #4 |
Участник
|
Так я не понял, время на сервере и клиенте одинаковое или у них 3 часа разницы?
Полагаю ,что было бы логично серверу вести запись времени по своему времени(типа, время клиента + N часов). А так как SQL-запрос обрабатывается на сервере, то и время там идет соответственное. А клиент обрабатывает время на своей машине.... P.S. интересно, если сделать запись текущего времени с одного клиента. А потом считать это время на другом клиенте, у которого время +1час к первому, то считаное время будет на 1 час отличаться или нет? не знаю насчет опции, но точно можно сделать так что бы время на всех компьютерах синхронизировалось с сервером, например, каждый час. |
|
16.08.2007, 14:28 | #5 |
Участник
|
|
|
16.08.2007, 15:08 | #6 |
Moderator
|
Скорей всего дело в региональных настройках сервера. Обратите внимание: разница в -3 часа (Москва = +3GMT).
Т.е. не установлена страна на сервере. |
|
16.08.2007, 16:23 | #7 |
Участник
|
Цитата:
DATETIME Use this data type to denote the date and time of day. The datetime is stored in the database as Coordinated Universal Time (UTC). UTC is the international time standard (formerly Greenwich Mean Time, or GMT). Zero hours UTC is midnight at 0 degrees longitude. The datetime is always displayed as local time in Navision. Local time is determined by the time zone regional settings used by your computer. You must always enter datetimes as local time. When you enter a datetime as local time, it is converted to UTC using the current settings for the time zone and daylight saving time. Comments There is only one constant available when you use this data type: undefined datetime. DateTime := 0DT Navision Database Server The earliest permitted datetime is January 1, 0000, 00:00:00.000. The latest permitted datetime is December 31, 9999, 23:59:59.999. SQL Server The earliest permitted datetime is January 1, 1754, 00:00:00.000. The latest permitted datetime is December 31, 9999, 23:59:59.999. Any datetimes that are not within this range and that you try to enter or construct by, for example, adding a datetime to a duration, are regarded as undefined datetimes and give an error message. Undefined dates are stored as January 1, 1753, 00:00:00.000. Note The biannual change to and from daylight saving time affects the way in which datetimes are displayed. For example, if you are located in central Europe, you are in the central European time zone and are using Central European Time (CET). During the winter the difference between CET and UTC is 1 hour. When you change to daylight saving time for the summer the difference is 2 hours. This means that the local time representation of a UTC will vary depending on the time zone you are located in and whether you are using daylight saving time or not. Therefore, any datetimes that were entered during the winter will be converted and displayed differently after you have changed to daylight saving time for the summer. In other words, datetimes will not necessarily be displayed the same as when they were entered. The DateTime datatype does not support closing dates. By default, datetimes are displayed using the standard display format. When you use the standard display format, seconds and milliseconds are not displayed until you select the datetime field. Furthermore, if you export your data using the standard dataport export, the User Portal dataport export or by writing it to a file, the seconds and milliseconds will not be exported unless you specify that datetime fields use another format and display this information. For more information about how datetimes are displayed and the formats that are available, see Format. |
|
16.08.2007, 17:00 | #8 |
Участник
|
Для определения времени с учетом часового пояса:
select ПолеДата + getdate()-getutcdate() from *** |
|