Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Как отрезать время в параметре DateTime?   Найти похожие ветки 

 
AndrewK ©   (2004-04-14 15:41) [0]

Передаю в хранимую процедуру параметр типа DateTime со временем.
Как мне получить параметр типа datetime в самой процедуре без этого времени.
Например:
передается     "01.01.2002 12:10:15.023"
надо получить  "01.01.2002 00:00:00.000"


 
AndrewK ©   (2004-04-14 15:41) [0]

Передаю в хранимую процедуру параметр типа DateTime со временем.
Как мне получить параметр типа datetime в самой процедуре без этого времени.
Например:
передается     "01.01.2002 12:10:15.023"
надо получить  "01.01.2002 00:00:00.000"


 
stone ©   (2004-04-14 15:44) [1]

писать функцию, в которой "обрезать" время


 
stone ©   (2004-04-14 15:44) [1]

писать функцию, в которой "обрезать" время


 
Johnmen ©   (2004-04-14 15:47) [2]

Передать без времени...


 
Johnmen ©   (2004-04-14 15:47) [2]

Передать без времени...


 
Vlad ©   (2004-04-14 15:47) [3]


> Как мне получить параметр типа datetime в самой процедуре
> без этого времени.

Чтобы получить параметр без времени надо передать параметр без времени
Trunc(<дата>)


 
Vlad ©   (2004-04-14 15:47) [3]


> Как мне получить параметр типа datetime в самой процедуре
> без этого времени.

Чтобы получить параметр без времени надо передать параметр без времени
Trunc(<дата>)


 
sniknik ©   (2004-04-14 15:47) [4]

cast(round(cast(xxxx as float), 0, 1) as datetime)

а не проще параметр при передаче "урезать"?


 
sniknik ©   (2004-04-14 15:47) [4]

cast(round(cast(xxxx as float), 0, 1) as datetime)

а не проще параметр при передаче "урезать"?


 
Fay ©   (2004-04-14 15:53) [5]

2-й способ быстрее на ~10%...
declare
@dt datetime

select @dt = GetDate()

select
 convert(datetime, convert(int, SubString(convert(binary(8), @dt), 1, 4)))

select
 dateadd(dd, datediff(dd, "", @dt), "")


 
Fay ©   (2004-04-14 15:53) [5]

2-й способ быстрее на ~10%...
declare
@dt datetime

select @dt = GetDate()

select
 convert(datetime, convert(int, SubString(convert(binary(8), @dt), 1, 4)))

select
 dateadd(dd, datediff(dd, "", @dt), "")


 
Ega23 ©   (2004-04-14 15:59) [6]

Зачем та сложно?
@MyDate=Cast(Cast(@MyDate as int) as datetime)


 
Ega23 ©   (2004-04-14 15:59) [6]

Зачем та сложно?
@MyDate=Cast(Cast(@MyDate as int) as datetime)


 
Fay ©   (2004-04-14 16:07) [7]

2Ega23 ©   (14.04.04 15:59) [6]
Проверь "20040101 12:00:01.000" и "20040101 11:59:59.000"
8)


 
Fay ©   (2004-04-14 16:07) [7]

2Ega23 ©   (14.04.04 15:59) [6]
Проверь "20040101 12:00:01.000" и "20040101 11:59:59.000"
8)


 
bushmen ©   (2004-04-14 16:12) [8]

А не проще ли так:

select convert(varchar(10), dat1, 104) + " 00:00:00.000" from table1

?


 
bushmen ©   (2004-04-14 16:12) [8]

А не проще ли так:

select convert(varchar(10), dat1, 104) + " 00:00:00.000" from table1

?


 
Fay ©   (2004-04-14 16:14) [9]

2bushmen ©   (14.04.04 16:12) [8]
Если скорость не волнует, то м.б. и проще...


 
Fay ©   (2004-04-14 16:14) [9]

2bushmen ©   (14.04.04 16:12) [8]
Если скорость не волнует, то м.б. и проще...


 
bushmen ©   (2004-04-14 16:17) [10]

> Fay ©
Что значит, скорость не волнует?
У меня этот вывел 650 000 записей за 3 секунды


 
bushmen ©   (2004-04-14 16:17) [10]

> Fay ©
Что значит, скорость не волнует?
У меня этот вывел 650 000 записей за 3 секунды


 
Fay ©   (2004-04-14 16:19) [11]

Все фетчил? Что говорит сравнение?


 
Fay ©   (2004-04-14 16:19) [11]

Все фетчил? Что говорит сравнение?


 
Ega23 ©   (2004-04-14 16:21) [12]

Проверь "20040101 12:00:01.000" и "20040101 11:59:59.000"

Да, это что-то я позабыл....

Тогда так:
@dt1=Cast(Round(Cast(@dt1 as float),0,1) as datetime)


 
Ega23 ©   (2004-04-14 16:21) [12]

Проверь "20040101 12:00:01.000" и "20040101 11:59:59.000"

Да, это что-то я позабыл....

Тогда так:
@dt1=Cast(Round(Cast(@dt1 as float),0,1) as datetime)


 
Ega23 ©   (2004-04-14 16:23) [13]

Ребят, да о какой скорости спорите?! Человеку параметру входному в процедуре Trunc надо сделать, вот и всё. Какие 650000 записей?


 
Ega23 ©   (2004-04-14 16:23) [13]

Ребят, да о какой скорости спорите?! Человеку параметру входному в процедуре Trunc надо сделать, вот и всё. Какие 650000 записей?


 
Johnmen ©   (2004-04-14 16:24) [14]

>Ega23 ©
>Fay ©  

Про округление намек ? Тогда
@MyDate=Cast(Cast(@MyDate-0.5 as int) as datetime)


 
Johnmen ©   (2004-04-14 16:24) [14]

>Ega23 ©
>Fay ©  

Про округление намек ? Тогда
@MyDate=Cast(Cast(@MyDate-0.5 as int) as datetime)


 
Fay ©   (2004-04-14 16:25) [15]

2Ega23 ©   (14.04.04 16:23) [13]
Человеку надо "получить параметр типа datetime в самой процедуре без этого времени"


 
Fay ©   (2004-04-14 16:25) [15]

2Ega23 ©   (14.04.04 16:23) [13]
Человеку надо "получить параметр типа datetime в самой процедуре без этого времени"


 
bushmen ©   (2004-04-14 16:29) [16]

>Как мне получить параметр типа datetime в самой процедуре без >этого времени.
>Например:
>передается     "01.01.2002 12:10:15.023"
>надо получить  "01.01.2002 00:00:00.000"

1) А почему этот параметр на клиенте нельзя подготавливать?


 
bushmen ©   (2004-04-14 16:29) [16]

>Как мне получить параметр типа datetime в самой процедуре без >этого времени.
>Например:
>передается     "01.01.2002 12:10:15.023"
>надо получить  "01.01.2002 00:00:00.000"

1) А почему этот параметр на клиенте нельзя подготавливать?


 
Fay ©   (2004-04-14 16:32) [17]

2Johnmen ©   (14.04.04 16:24) [14]
Проверь "17530101 00:00:00.000"


 
Fay ©   (2004-04-14 16:32) [17]

2Johnmen ©   (14.04.04 16:24) [14]
Проверь "17530101 00:00:00.000"


 
Johnmen ©   (2004-04-14 16:35) [18]

>Fay ©   (14.04.04 16:32) [17]

С отрицаловкой не работаю... :)


 
Johnmen ©   (2004-04-14 16:35) [18]

>Fay ©   (14.04.04 16:32) [17]

С отрицаловкой не работаю... :)


 
Fay ©   (2004-04-14 16:38) [19]

Я просто хотел сказать, что есть быстрые правильные способы.


 
Fay ©   (2004-04-14 16:38) [19]

Я просто хотел сказать, что есть быстрые правильные способы.


 
Ega23 ©   (2004-04-14 16:42) [20]

"получить параметр типа datetime в самой процедуре без этого времени"

Совершенно правильно! Есть входной параметр типа datetime, он подаётся со временем. Нужно это время "отсечь". Конечно, на клиенте проще Trunc сделать, но ему же в процедуре надо...


 
Ega23 ©   (2004-04-14 16:42) [20]

"получить параметр типа datetime в самой процедуре без этого времени"

Совершенно правильно! Есть входной параметр типа datetime, он подаётся со временем. Нужно это время "отсечь". Конечно, на клиенте проще Trunc сделать, но ему же в процедуре надо...


 
AndrewK ©   (2004-04-14 17:05) [21]

Спасибо всем. Все получилось.

Мне действительно надо было отрезать время в процедуре. Я пытаюсь побольше логики выкинуть на серверную часть.


 
AndrewK ©   (2004-04-14 17:05) [21]

Спасибо всем. Все получилось.

Мне действительно надо было отрезать время в процедуре. Я пытаюсь побольше логики выкинуть на серверную часть.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.032 c
1-1082370806
sav00
2004-04-19 14:33
2004.05.09
Выделение в Edit


1-1082548702
rams
2004-04-21 15:58
2004.05.09
Можно ли поменять цвет "закрашивания" ProgressBar


7-1078934009
Александр1
2004-03-10 18:53
2004.05.09
Как записать CD-R или CD-RW


14-1082127074
nikitos
2004-04-16 18:51
2004.05.09
Протестите прогу


1-1082451955
gauss
2004-04-20 13:05
2004.05.09
XML Parser?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский