|
v7: 1С 7.7 - Дата и время в запросе SQL | ☑ | ||
---|---|---|---|---|
0
Mary01
12.01.16
✎
11:09
|
Добрый день!
Пожалуйста, подскажите, как в запросе получить Дату + Время? Есть таблица в SQL, в таблице - поле Date_time, тип Datetime. В этом поле есть значение: 2016-01-12 12:03:34.000 Запрос в 7.7: |SELECT |Zakaz.date_time |FROM Zakaz Затем получаю: ДатаДок = RecordSet.Fields("date_time").Value; результат: '12.01.16' А нужно, чтобы была и дата, и время. |
|||
1
Serginio1
12.01.16
✎
11:12
|
Используй Cast Convert така как в 7 ке дата без времени
https://msdn.microsoft.com/ru-ru/library/ms187928(v=sql.120).aspx |
|||
2
cw014
12.01.16
✎
11:13
|
Раздели отдельно на дату и отдельно на время. У 7.7 нет понятия даты-время, есть только дата
|
|||
3
Рэйв
12.01.16
✎
11:13
|
cast в строку попробуй
|
|||
4
Mikeware
12.01.16
✎
11:17
|
получай Datepart() от даты-времени, отдельно для часов, минут, секунд, микросекунд если надо, и собирай в строку вручную.
Если надо перевести в семерочное время и упаковать, скажем, в Date_Time_Iddoc - переводи в число микросекунд с начала дня, и преобразоывывай в 36-ричную. |
|||
5
Mikeware
12.01.16
✎
11:18
|
(2) понятия времени - нет. а дата-время - применяется внутри базы.
|
|||
6
Serginio1
12.01.16
✎
11:19
|
SELECT CONVERT(char(19),Zakaz.date_time,121)
|
|||
7
trdm
12.01.16
✎
11:19
|
|SELECT
| DATEPART(hour, GETDATE()) as hour | ,DATEPART(minute, GETDATE()) as minute | ,DATEPART(year, GETDATE()) as year | ,DATEPART(month, GETDATE()) as month | ,DATEPART(day, GETDATE()) as day |
|||
8
Mary01
12.01.16
✎
11:20
|
делала |cast(Zakaz.date_time as datetime) as date_time
но результат тот же |
|||
9
Serginio1
12.01.16
✎
11:23
|
(8) 1 Читал. В 7 ке дата без времени. Только приведение к строке тебе поможет
http://stackoverflow.com/questions/32049341/converting-datetime-in-sqlserver-like-yyyy-mm-dd-hhmiss-to-yyyy-mm-dd-235959 |
|||
10
trdm
12.01.16
✎
11:25
|
А так:
|SELECT TOP 100 | DATEPART(hour, Zakaz.date_time) as hour | ,DATEPART(minute, Zakaz.date_time) as minute | ,DATEPART(year, Zakaz.date_time) as year | ,DATEPART(month, Zakaz.date_time) as month | ,DATEPART(day, Zakaz.date_time) as day |FROM Zakaz |
|||
11
trdm
12.01.16
✎
11:26
|
(9) У нее нетипичная семерошная таблица.
Скорее всего какой-то самопал. О чем свидетельствует название таблицы "Zakaz" Так что клюшки тут исключительно как среда. |
|||
12
Mikeware
12.01.16
✎
11:29
|
(11)она просто читает из внешней базы.
|
|||
13
trdm
12.01.16
✎
11:29
|
(12) О том и речь.
|
|||
14
trdm
12.01.16
✎
11:30
|
Так лучше
|SELECT TOP 100 | CONVERT(CHAR(19), Zakaz.date_time, 20) as Date |FROM Zakaz |
|||
15
Serginio1
12.01.16
✎
11:30
|
(11) Он читает из внешней базы. А в 7 ке уже отбрасывается время.
|
|||
16
Serginio1
12.01.16
✎
11:31
|
(14) Уже в 6 дал ответ. Правда там с миллисекундами
|
|||
17
trdm
12.01.16
✎
11:32
|
И что? Чукча не читатель, чукча писатель :)
|
|||
18
Mikeware
12.01.16
✎
11:34
|
(0) вообще, а зачем нужно это время? что с ним будешь дальше делать?
|
|||
19
Serginio1
12.01.16
✎
11:35
|
(17) А вообще ответ дан в 2. Но согласен, иногда лень все читать. Сам такой.
|
|||
20
Serginio1
12.01.16
✎
11:37
|
(18) Например УстановитьВремя() для документа
|
|||
21
Mikeware
12.01.16
✎
12:01
|
(20) если средсвами 1с - тогда (7).
Если напрямую - тогда (4). |
|||
22
Serginio1
12.01.16
✎
13:07
|
(21) А может ему нужно сохранить дату и время внешнего документа, для дальнейшего обмена? Можно только гадать, что ему нужно
|
|||
23
Mikeware
12.01.16
✎
13:07
|
(22) поэтому остается только ТКВ
|
|||
24
Mary01
12.01.16
✎
13:18
|
(12) да, именно так
|
|||
25
Mary01
12.01.16
✎
13:25
|
(18) чтобы создать документ, в котором будет это время, а не только дата
|
|||
26
Mary01
12.01.16
✎
13:26
|
(17) это кому? )
|
|||
27
Mikeware
12.01.16
✎
13:31
|
(25) тогда - (7), (10), или (14) как строка
|
|||
28
Mary01
12.01.16
✎
16:31
|
Получилось как в (7), получила час, минуту и секунду.
Затем делаю: Док.УстановитьВремя(Час, Минута, Секунда); Не устанавливается! Присваивает другое время. |
|||
29
Mary01
12.01.16
✎
16:32
|
(28) Это у нового документа. время присваивается при записи.
|
|||
30
Serginio1
12.01.16
✎
17:15
|
А записать() ?
|
|||
31
Mary01
12.01.16
✎
18:25
|
(30) Это есть.
До записать() у документа еще нет никакого времени, несмотря даже на то, что я присваиваю конкретное время. А после записать() - время появляется, но совсем другое присваивается автоматически (( |
|||
32
MadJhey
12.01.16
✎
18:39
|
(31) АвтоВремяОтключить()
|
|||
33
Mary01
12.01.16
✎
19:09
|
(32) А вот эта штука АвтоВремяОтключить() - работает только для текущего документа или для всех последующих тоже?
|
|||
34
Mary01
12.01.16
✎
19:15
|
Получилось!
Док.Новый(); Док.ДатаДок = ДатаДок; Док.АвтоВремяОтключить(); Док.УстановитьВремя(Час, Минута, Секунда); Док.Записать(); В итоге у документа установлено именно то время, которое нужно. Всем спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |