powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перобразование даты в число?
12 сообщений из 12, страница 1 из 1
Перобразование даты в число?
    #32057704
dimitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость


SQL2000ServerSP2
SELECT CONVERT(INT, CONVERT(smalldatetime, CONVERT(char(10), GETDATE(), 112), 112)) = 37539

VB
CLng(DATE()) = 37541


GETDATE() = DATE()
А по возвращаемому значению оказывается нет.
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057708
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чем прямое преобразование не нравится?

Код: plaintext
1.
2.
declare @n float
set @n=convert(float,getdate())
select @n


Если не секрет, а зачем это нужно?
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057711
dimitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В таблице имеется поле хранящее
дату со временем отправки принятого
заказа в производство.
А для составления отчета о всех отправленных
заказах в ХП передается дата
cm.Parameters(1).Value = Date().

В ХП попадает дата '12.10.2002 00:00:00'

Поэтом у ничего не возвращается.

Вот я и хотел к Int преобразовать.
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057719
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не въехал, на каком это языке.

Но все равно.
Передавайте параметр в виде закавыченной строки 'yyyymmdd'

В дельфях это выглядит так

AnsiQuotedStr(FormatDateTime('yyyymmdd', date),'''')

или так

'''+FormatDateTime('yyyymmdd', date)+''''

Надеюсь, что у Вас не будет проблем с написанием подобной функции.

Никогда не надо надеятся на корректную передачу даты от клиента.
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057728
dimitriy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это Visual Basic 6

В нем заковыченная строка не прокатит,
ругнется на не соответствие формата
передаваемого параметра.
Код: plaintext
cm.Parameters( 1 ).Value = Date(). 


Пока время не фиксировалось все
было ОК'ей.
А сейчас в БД '12.10.2002 14:15:00'

В ХП попадает дата '12.10.2002 00:00:00'
для выборки.

Поэтом у ничего не возвращается.

Вот я и хотел к Int преобразовать.

Сиквел после преобразования выдает значение одно,
а васик на две единицы больше? what is this?
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057752
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соберите запрос как строку, без всяких параметров
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057782
Фотография Гнездин Петр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По-умолчанию SQL радостно скушает дату '12.10.2002 00:00:00', только воспримет ее как 10 декабря (штатовский формат). Если после коннекта к серверу дать ему через Connection.Execute (кажется, так это в басике выглядит) команду 'SET dateformat dmy', то скорее всего проблема будет решена. Но вообще-то я согласен, что надежнее передавать в формате 'yyyymmdd'
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057794
ms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ms
Гость
Знакомая проблема - но ответ - в вашем же вопросе: передавайте из VB дату со временем вместе (в Delphi тип данных DateTime), или обработайте дату в запросе

например
Код: plaintext
1.
SELECT CONVERT(varchar( 10 ),GETDATE(), 111 )
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057795
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделайте функуцию, преобразовывающую дату в строку.
В XP принимаемый параметр даты тоже обзовите varchar(20).

cm.Parameters(1).Value = dateToSQLString(Date()).

FAQ
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057823
sergwsk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to dimitrie:
Для передачи времени из VB6 в SQL2000 использую такой текст:
Код: plaintext
1.
Set prmP = cmdTMP.CreateParameter( "ДатаНачалаКомплектации" , adDBTimeStamp, adParamInput, , Now())
cmdTMP.Parameters.Append prmP
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057882
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из VB вы передаёте всё правильно.
В SQL yадо сравнивать с усечённой датой
Код: plaintext
WHERE CONVERT(datetime,CONVERT(varchar,GETDATE(), 1 ), 1 ) = @date


тогда '12.10.2002 14:15:00' станет '12.10.2002 00:00:00'
...
Рейтинг: 0 / 0
Перобразование даты в число?
    #32057890
Фотография VVG_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем вообще на сервер гнать дату клиента, если у него своя есть. А что будет, если клиент себе дату на годик назад переведет, чтобы какой-нибудь просроченный триал снова заработал? Или особо жулистый бухгалтер обратным числом деньги попроводить захочет? Потом на свою же голову неожиданные геморрои получать?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перобразование даты в число?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]