Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / О дате / 25 сообщений из 47, страница 1 из 2
19.07.2002, 11:32:20
    #32037682
Сергей2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Вопрос таков у меня 2 SQL 2000 сервера один дома другой на работе
и винды русские и английские (2000) соответственно
Мне нужно получить datetime на 00:00:00 текущего дня но из за различных форматов даты мои манипуляции cast c day,year,month и getdate() имеет разный формат, есть ли способ делать независимо от формата.
...
Рейтинг: 0 / 0
19.07.2002, 11:40:58
    #32037688
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Что-то я не пойму в чем проблема - переменная типа datetime хранит информацию во внутреннем формате, который не зависит от языковых настроек. Последние влияют только на отображение. Так что, если Вам необходимо работать с переменными типа datetime, то используйте GetDate(), DateAdd() и т.п.
Если речь о строковых данных, то YEAR, MONTH, DAY помогут Вам.

Удачи
...
Рейтинг: 0 / 0
19.07.2002, 11:47:11
    #32037694
Сергей2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Все хорошо но как получить теми же add или dif из даты начало этого дня 00:00:00?
...
Рейтинг: 0 / 0
19.07.2002, 11:56:01
    #32037702
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Я правильно понял, что если сейчас, скажем,
Код: plaintext
 2002 - 07 - 19   11 : 54 : 36 . 050 


То Вам необходимо получить
Код: plaintext
 2002 - 07 - 19   00 : 00 : 00 . 000 

в некой переменной типа datetime?
...
Рейтинг: 0 / 0
19.07.2002, 11:57:06
    #32037703
Сергей2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Да
...
Рейтинг: 0 / 0
19.07.2002, 11:57:31
    #32037704
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
BOL->Date and tIME fUNCTIONS->DATEPART()
...
Рейтинг: 0 / 0
19.07.2002, 12:00:36
    #32037707
Сергей2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
но как понять после в каком виде для сast подавать
yyyy-mm-dd или dd/mm/yyyy ?
...
Рейтинг: 0 / 0
19.07.2002, 12:00:41
    #32037708
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Код: plaintext
1.
2.
3.
declare @d datetime
set @d = getdate()
set @d = convert(char( 10 ),@d, 112 )
select @d
...
Рейтинг: 0 / 0
19.07.2002, 12:01:50
    #32037709
Сергей2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Большое просто нечеловеческое СПАСИБО
...
Рейтинг: 0 / 0
19.07.2002, 12:08:28
    #32037719
Maxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2 Сергей2 если есть такого типа вопросы,то лутше пользуйся поиском по форуму(Лично я так и делаю т.к. ето FAQ:)
...
Рейтинг: 0 / 0
22.07.2002, 10:31:45
    #32037944
Dikobrazz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
А можно еще преобразовывать дату в число и отбрасывать дробную часть (в которой как раз содержатся часы-минуты-секунды)
Код: plaintext
select cast(floor(cast(GetDate() as float)) as datetime)
...
Рейтинг: 0 / 0
22.07.2002, 11:36:12
    #32037970
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2Dikobrazz

Datetime - не есть вещественное число

Код: plaintext
select convert(datetime, substring(convert(binary( 8 ), GetDate()), 1 ,  4 )+0x00000000)
...
Рейтинг: 0 / 0
22.07.2002, 12:00:59
    #32037980
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Datetime - храниться как float, т.е. целая часть - это год, месяц и день а дробная - часы, минуты ... . Отбрасывая дробную часть можно получить дату без времени (т.е 00:00:00.0).
...
Рейтинг: 0 / 0
22.07.2002, 12:14:09
    #32037984
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2Rom

Обратите внимание - здесь обсуждается MS SQL Server.

Смею предположить, что MS SQL Server данные типа Datetime в формате Datetime MS SQL Server-а.

Если это так - то Вы либо не что-то упустили, либо попали не в тот форум.
...
Рейтинг: 0 / 0
22.07.2002, 12:18:27
    #32037985
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
"не что-то" ;)
...
Рейтинг: 0 / 0
22.07.2002, 12:24:28
    #32037990
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Код: plaintext
1.
2.
3.
declare @dt datetime
select @dt = getdate()
select @dt = round(convert(float,@dt), 0 , 0 )
select @dt
...
Рейтинг: 0 / 0
22.07.2002, 12:28:20
    #32037992
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2Rom
Values with the datetime data type are stored internally by Microsoft SQL Server as two 4-byte integers. The first 4 bytes store the number of days before or after the base date, January 1, 1900. The base date is the system reference date. Values for datetime earlier than January 1, 1753, are not permitted. The other 4 bytes store the time of day represented as the number of milliseconds after midnight.
...
Рейтинг: 0 / 0
22.07.2002, 12:33:54
    #32037994
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
фактически - те же .... вид сбоку
...
Рейтинг: 0 / 0
22.07.2002, 13:02:59
    #32038017
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
думаю не стоит углубляться float / не float. В любой момент MS может поменять формат (а примеров таких полно) и придется все переделывать. в этом случае лучше воспользоваться функциями, тем более, что это не сложно.
...
Рейтинг: 0 / 0
22.07.2002, 13:03:38
    #32038020
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2Rom
Два 4-х байтных целочисленных поля и float схожи друг с другом как и "теми же с боку"
...
Рейтинг: 0 / 0
22.07.2002, 13:06:22
    #32038023
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2 СуКа
интересно, SQL автоматически вставляет функции конвертации в данном случае ?
Код: plaintext
1.
2.
3.
declare @dt datetime
select @dt = getdate()
select @dt = @dt +  1 
select @dt

добавляем 1 день
...
Рейтинг: 0 / 0
22.07.2002, 13:10:07
    #32038027
Зайцев Фёдор
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2rOm

Нет, что ты !!!

Сервак сначала пытается обратиться с службу тех. поддержки (но только если не находит MSDN)
...
Рейтинг: 0 / 0
22.07.2002, 13:12:00
    #32038030
Rom
Rom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
а все же ?
не знаешь, так и скажи
...
Рейтинг: 0 / 0
22.07.2002, 13:46:39
    #32038038
3JIA9I CyKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
Он ничего не "вставляет", т.к. неплохо ориентируется в собственных типах данных.

Только проверка диапазона
...
Рейтинг: 0 / 0
22.07.2002, 13:51:03
    #32038039
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
О дате
2 Rom

Не могли бы Вы расписать как перевести дробную часть возвращаемую при конвертиции DateTime во Float в стандартные чч:мм:сс.

С целой частью понятно - это количество дней от 01.01.1900 (я проверял, сходится), а вот дробную часть как не пытаюсь - не получается :(

Это не с целью подколоть. Мне действительно интересно.

2 3JIA9I CyKA

Вопрос тот же, но уже пользуясь переводом в Binary
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / О дате / 25 сообщений из 47, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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