Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.06.2017, 11:55   #11
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
И обрати внимание - идешку в символьный формат перевел из int
Для чего это надо делать? У меня же идеюшка это уникальный ID записи, имеющиий целочисленный формат int
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.06.2017, 12:01   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Для чего это надо делать? У меня же идеюшка это уникальный ID записи, имеющиий целочисленный формат int
так запрос формируется динамически, в строку собирается.
вот, чтобы строку запроса сформировать, и нужно всё перевести в строковый вид.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.06.2017, 12:03   #13
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Во!
Хотя бы заработало без ошибки!
Только результат такой получился:
Код:
2017-06-20 08:59:27.250
Во-первых, мне бы дату только в формате 'DD.MM.YYYY', а во-вторых время как системное.
А что чего это за 08:59, когда у меня вообще 17:02)))
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.06.2017, 12:05   #14
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Ты же строку делаешь с текстом запроса, a символьная строка не может просто так с int или datetime сцепиться, нужно все не символьные типы корректно в строки перевести

Цитата:
А что чего это за 08:59, когда у меня вообще 17:02
Почитай справку по GetutcDate и сообщение #6

Убрать время из даты CAST(GETDATE() AS DATE) - 2008 и выше
или так, например, CONVERT(DATETIME, CONVERT(VARCHAR(15), GETDATE(), 101))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 20.06.2017 в 12:10.
Аватар вне форума Ответить с цитированием
Старый 20.06.2017, 12:48   #15
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Вот это помогло!
Цитата:
Сообщение от Аватар Посмотреть сообщение
CONVERT(DATETIME, CONVERT(VARCHAR(15), GETDATE(), 101))
Правда забавно, что в базе дата хранится как
Код:
2017-06-20 00:00:00.000
А на клиенте отображается
Код:
20.06.2017
. Ну и отлично.
А как со временем быть тогда?
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.06.2017, 13:05   #16
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Правда забавно, что в базе дата хранится как
Так она у тебя отображается, а хранится в виде вещественного числа и на клиенте тоже
Цитата:
А как со временем быть тогда
А зачем оно отдельно, храни вместе с датой. А отображай как хочешь
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.06.2017, 14:03   #17
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А зачем оно отдельно, храни вместе с датой. А отображай как хочешь
Да хотелось потом фильтр по времени сделать. Потому и хочу отдельно хранить время!
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 20.06.2017, 14:26   #18
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если с учетом даты, то вообще без проблем:
Код:
WHERE User_Date BETWEEN '20110828 17:00:00' AND '20110901 02:14:00'
Если же по интервалу суточного времени по всем датам:
Код:
--время с 13:00:00(включая) по 18:00:00 (не включая)
WHERE DATEPART(hh,User_Date) BETWEEN 13 AND 17

--время с 22:00:00(включая) по 03:00:00 (не включая)
WHERE DATEPART(hh,User_Date)>=22 OR DATEPART(hh,User_Date)<3

--время с 13:25:00(включая) по 17:58:00 (не включая)
WHERE DATEPART(hh,User_Date)*100+DATEPART(mi,User_Date) BETWEEN 1325 AND 1757
с вариациями
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 21.06.2017, 05:32   #19
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,194
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если с учетом даты, то вообще без проблем:
Код:
WHERE User_Date BETWEEN '20110828 17:00:00' AND '20110901 02:14:00'
Если же по интервалу суточного времени по всем датам:
Код:
--время с 13:00:00(включая) по 18:00:00 (не включая)
WHERE DATEPART(hh,User_Date) BETWEEN 13 AND 17

--время с 22:00:00(включая) по 03:00:00 (не включая)
WHERE DATEPART(hh,User_Date)>=22 OR DATEPART(hh,User_Date)<3

--время с 13:25:00(включая) по 17:58:00 (не включая)
WHERE DATEPART(hh,User_Date)*100+DATEPART(mi,User_Date) BETWEEN 1325 AND 1757
с вариациями
Мне все таки нужно время отдельно!
Вот, тут я нашел как можно попробовать: https://blog.sqlauthority.com/2009/0...from-datetime/
Я попробовал.
Написал в свой запрос так:
Код:
... = CONVERT(VARCHAR(15), GETDATE(), 108) WHERE...
И время добавляется. Но, время с разницей в 8 часов от меня, т.е., например, у меня время 10:30:41.0000000, а добавляется в базу 02:30:41.0000000.
Поэтому 2 вопроса:
  1. Как сделать, чтобы добавлялось МОЕ время?
  2. Как убрать нули после точки во времени?

Колонка имеет в таблице тип time
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 21.06.2017, 06:28   #20
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Как сделать, чтобы добавлялось МОЕ время?
Ты не читаешь что тебе советуют. Выше в двух постах по этому поводу уже говорилось
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача параметров в хранимую процедуру в MS SQL artemavd БД в Delphi 5 08.06.2017 06:49
sql форматирование времени/даты conflictogen PHP 3 22.09.2015 12:52
Не могу переделать хранимую процедуру Zicise Общие вопросы .NET 1 06.11.2014 18:09
Добавление пользователя через хранимую процедуру Muramidaza БД в Delphi 2 18.03.2014 22:41
добавление через хранимую процедуру пауэрлифтинг БД в Delphi 2 27.05.2010 16:21