Мы обновили наши серверы до Windows 2008 Server, но мы все еще используем SQL Server 2005 в нашем производственном программном обеспечении. Проблема возникает в одной части системы, где мы храним время как datetime. С тех пор при хранении времени в столбце datetime базовая дата сохранялась как дата. В SQL Server 2005 это 1900-01-01. Тогда IIS понимает, что это случай по умолчанию, поэтому наше приложение ASP печатало только часть времени datetime, и наша система работала как ожидалось.
С этим обновлением sa [i] d базовая дата и время, по-видимому, изменились на 1899-12-30, поэтому на наших страницах ASP отображается полное время, например, 1900-01-01 07:30:00 вместо только время (07:30:00), поскольку это больше не дата по умолчанию.
Я знаю, что это не лучший подход для системы, это был не я, кто разработал ее в первую очередь, я просто поддерживаю это, поэтому я хотел бы знать, есть ли место в IIS меню настроек или в Windows, где я могу установить базовую дату для своих приложений. Я где-то читал, что SQL Server 2005 использует 1900-01-01 в качестве основы, где другие приложения MS используют 1899-30-12, но я не думаю, что это так, я надеюсь, что смогу это изменить.
Я пока не знаю последствий извлечения времени и его использования в этой части системы (изменения нашего программного обеспечения) вместо того, чтобы возиться с конфигурациями (вход в наше программное обеспечение), но я полагаю, что слепые зоны будут во всем мире.
======
Пример, как спросили:
Я не могу привести точный пример прямо сейчас (я дома на выходные), но я могу попробовать:
set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM TABLE WHERE ID=123", MyConnection, 1, 3
rs("MyDateTimeColumn") = Request.Form("MyTimeOnlyHtmlInput") 'Formatted as 07:14:50, for example
rs.Update 'Saved to the Data Base
rs.Close
rs.Open "SELECT * FROM TABLE WHERE ID=123", MyConnection, 1, 3 'Retrieving data back
echo "<input type='text' value='" & rs("MyDateTimeColumn") & "' />"
Этот код работал, я бы вводил «01:23:45» во ввод, отправлял его в этот код, и он печатал бы ввод только со временем. Прямо сейчас, что я получаю на входе "1899-12-30 01: 23: 45.000".
UPDATE:
Я попросил нашего менеджера сервера помочь, он попробует MSFT как ресурс. Я обновлю это, если получу новости. Спасибо всем за помощь. Я обновлю это, если получу какие-нибудь новости.