Конференция "Базы" » ADO и параметры [D6, MSSQL]
 
  • Evgeny V © (17.03.08 07:22) [20]

    > piople   (17.03.08 06:21) [19]

    Спасибо:-)
  • ANB (17.03.08 10:33) [21]

    > piople   (17.03.08 06:21) [19]

    +1. Еще неплохо на входе уже в запросе явно преобразовать в дату с маской - тогда настройки сервера и клиента никогда не повлияют.
  • Anatoly Podgoretsky © (18.03.08 04:31) [22]

    > > Целая часть DateTime Представляет из себя количество суток.
    >
    > >  Дробная часть имеет длину в 8 знаков. 3.33 милисекунды
    >

    Кто такую глупость написал?
    Ни каких дробных частей, ну не хранит как флоат.
    В остальном тоже ошибки - 'yyyymmdd hh:mm:ss.mmm'  - это не вормат ISO и более того он не будет работать.

    Поосторожнее с Интернетом, очень много грязи.
  • piople © (18.03.08 08:10) [23]
    Неисключено :)

    Из SQL Server Books Online:

    > In SQL Server 7.0 and SQL Server 2000, bcp uses the ODBC
    > bulk copy API. Therefore, bcp uses the ODBC date format
    > (yyyy-mm-dd hh:mm:ss[.f...]) to import date values


    Значитъ использует:

    > ODBC canonical (with milliseconds) yyyy-mm-dd hh:mi:ss.mmm(24h)


    Возможно ошиблись в статье, но вот еще выдержка с сайта microsoft(MSDN)
    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2616395&siteID=1

    Получаетцц0:
    Select Convert(nvarchar,date,126) from yourtablename



    this will return yyyy-mm-ddThh:mms.mmm format

    Айс?
  • piople © (18.03.08 08:16) [24]
    Извените что не сразу в одном сообщении, вообщем проверил на своей БД:
    SELECT     CONVERT(nvarchar, TDate, 126) AS DateTimeWithMS
    FROM         SiteGuestBook



    Result:
    2008-01-02T16:27:51.670
    2008-01-02T23:33:13.030
    2008-01-02T23:33:16.780
    2008-01-02T23:33:21.593
    2008-01-02T23:33:24.640
    2008-01-02T23:33:29.543
    .....



    Либо так:
    SELECT     CONVERT(nvarchar, TDate, 121) AS DateTimeWithMS
    FROM         SiteGuestBook



    Это более удобочитаемо:

    2008-01-02 16:27:51.670
    2008-01-02 23:33:13.030
    2008-01-02 23:33:16.780
    2008-01-02 23:33:21.593
    ....

  • sniknik © (18.03.08 08:35) [25]
    > Возможно ошиблись в статье
    не ошиблись "yyyymmdd" работает
    CREATE TABLE #DateTable (Dat DateTime)
    INSERT INTO #DateTable (Dat) VALUES ('20000101 23:59:59.099')
    INSERT INTO #DateTable (Dat) VALUES ('20010202 23:58:58.098')
    SELECT CONVERT(VarChar(30), Dat, 121)  FROM #DateTable
    DROP TABLE #DateTable



    и дискретность в миллисекундах присутствует, а вот при чем там дробная часть в 8 символов не понятно.
    имелись ввиду байты? но там насколько знаю весь дататайм 8 байт (рекорд из 2х интеджеров), а не только "дробной".
    или символы в строковом представлении? но тогда их 9. легко посчитать.
  • Evgeny V © (18.03.08 10:32) [26]

    > piople   (17.03.08 06:21) [19]



    > P.S. Я почему-то не могу найти Ваш контакт в асе, плиз постучите,
    >  или скиньте на мыло номер...


    Почты твоей нет, моя ася 246-886-495
 
Конференция "Базы" » ADO и параметры [D6, MSSQL]
Есть новые Нет новых   [134433   +22][b:0][p:0.002]