Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перобразование даты в число? / 12 сообщений из 12, страница 1 из 1
12.10.2002, 20:47:17
    #32057704
dimitriy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?


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

VB
CLng(DATE()) = 37541


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

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


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

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

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

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

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

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

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

или так

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

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

Никогда не надо надеятся на корректную передачу даты от клиента.
...
Рейтинг: 0 / 0
13.10.2002, 00:49:26
    #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
13.10.2002, 16:28:40
    #32057752
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?
Соберите запрос как строку, без всяких параметров
...
Рейтинг: 0 / 0
13.10.2002, 22:41:49
    #32057782
Гнездин Петр
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?
По-умолчанию SQL радостно скушает дату '12.10.2002 00:00:00', только воспримет ее как 10 декабря (штатовский формат). Если после коннекта к серверу дать ему через Connection.Execute (кажется, так это в басике выглядит) команду 'SET dateformat dmy', то скорее всего проблема будет решена. Но вообще-то я согласен, что надежнее передавать в формате 'yyyymmdd'
...
Рейтинг: 0 / 0
14.10.2002, 06:55:49
    #32057794
ms
ms
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?
Знакомая проблема - но ответ - в вашем же вопросе: передавайте из VB дату со временем вместе (в Delphi тип данных DateTime), или обработайте дату в запросе

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

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

FAQ
...
Рейтинг: 0 / 0
14.10.2002, 10:20:34
    #32057823
sergwsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?
to dimitrie:
Для передачи времени из VB6 в SQL2000 использую такой текст:
Код: plaintext
1.
Set prmP = cmdTMP.CreateParameter( "ДатаНачалаКомплектации" , adDBTimeStamp, adParamInput, , Now())
cmdTMP.Parameters.Append prmP
...
Рейтинг: 0 / 0
14.10.2002, 12:10:07
    #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
14.10.2002, 12:21:41
    #32057890
VVG_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перобразование даты в число?
Зачем вообще на сервер гнать дату клиента, если у него своя есть. А что будет, если клиент себе дату на годик назад переведет, чтобы какой-нибудь просроченный триал снова заработал? Или особо жулистый бухгалтер обратным числом деньги попроводить захочет? Потом на свою же голову неожиданные геморрои получать?
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перобразование даты в число? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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