Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
1

Преобразование формата Дата/Время в другое представление

13.01.2017, 02:05. Просмотров 778. Ответов 33
Метки нет (Все метки)

Доброе время суток
имеется два столбца данными
1-й числовой
2-й Дата/Время

2-Й столбец получаю выгрузкой из таблицы Базы данных в текстовый файл
1-й столбец числовое представление Дата/Время этих же данных , которые используется в файле резервирования данных другой программы.

Необходимо сделать процедуру которая сможет конвертировать стандартное представление Дата/Время
в такой числовой вид как в 1-м столбце

про программу ничего не могу сказать это обыкновенный ехешный файл,
то есть на каком языке она написана я не знаю , а так как преобразование нужно сделать средствами Access пишу здесь на форуме

кто что может подсказать?и куда копать?

2111525055-1 28.11.2016 22:44:15
2115384300-1 12.01.2017 14:45:00
2115557160-1 14.01.2017 14:46:00
2145916800-1 01.01.2018 00:00:00
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2017, 02:05
Ответы с готовыми решениями:

Изменение формата поля Дата/Время и преобразование значений в полях
Форумчане, доброго времени суток! Есть поле, ранее формата "краткий формат...

Выборка данных из таблицы запросом на основании поля формата [Дата/время]
Доброго времени суток. На основании таблицы с разнообразными данными создал...

Вывод пустого поля формата Дата/время в запросе для формы
Добрый день! В форме есть поле с датой последнего занятия (поле из запроса на...

Ошибка формата Дата/время при импорте данных из txt в Access
Здравствуйте! Срочно нужна Ваша помощь Делаю импорт из txt-файла в Access...

Преобразование формата: число в дату и время
Здравствуйте. Имею в БД, в одной колонке тип данных: 41597,0179615509...

33
YuryK
1030 / 847 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
13.01.2017, 06:05 2
Цитата Сообщение от markusdod Посмотреть сообщение
Необходимо сделать процедуру которая сможет конвертировать стандартное представление Дата/Время
в такой числовой вид как в 1-м столбце
тогда уж опиши, каким образом 28.11.2016 22:44:15 должно превратиться в 2111525055-1
0
shanemac51
Модератор
Эксперт MS Access
7818 / 3031 / 434
Регистрация: 07.08.2010
Сообщений: 8,250
Записей в блоге: 2
13.01.2017, 07:40 3
Лучший ответ Сообщение было отмечено snipe как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub mm170113_0704()
'''''''''''это явно дата в секундах и номер версии
'' ПРАВДА ОТНОСИТЕЛЬНО НЕКОЙ БАЗОВОЙ ТОЧКИ
''
''2 115 384 300-1    12.01.2017 14:45:00
''2 115 557 160-1    14.01.2017 14:46:00
Debug.Print "разность чисел="; 2115384300 - 2115557160
Debug.Print "разность дат(с)="; DateDiff("s", CDate("12.01.2017 14:45:00"), CDate("14.01.2017 14:46:00"))
'''''разность чисел = -172860
'''''разность дат(с) = 172860
End Sub
1
snipe
2873 / 982 / 222
Регистрация: 07.08.2013
Сообщений: 2,461
13.01.2017, 09:37 4
количество секунд от 01.01.1950 00:00:00
3
alvk
Эксперт MS Access
5608 / 3502 / 170
Регистрация: 12.08.2011
Сообщений: 8,930
13.01.2017, 09:47 5
в 1950 году:

Английский математик Алан Тьюринг предложил Тест Тьюринга для проверки, является ли ЭВМ разумной в человеческом смысле слова.
Истина где-то рядом (с)
3
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
13.01.2017, 11:50  [ТС] 6
Цитата Сообщение от alvk Посмотреть сообщение
Истина где-то рядом (с)
Вы не поверите, но она постоянно где-то рядом
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 01:13  [ТС] 7
согласно рекомендаций и примеров полученных на форуме сочинил
следующий запрос
SQL
1
2
3
4
SELECT DateDiff("s", CDate(("01.01.1950 00:00:00")),CDate(MyDate)) & "-1" AS kd, Model
FROM Persons_0
WHERE DateValue(MyDate)>=DATE()
ORDER BY Telefon;
делаю запрос--все работает как и нужно
вставляю это же самое в тело процедуры кнопки
получаю строку красного цвета и курсор останавливается на "s"
s1 = "SELECT DateDiff("s", CDate(("01.01.1950 00:00:00")),CDate(MyDate)) AS kd, Model FROM Persons_0 WHERE DateValue(MyDate)>=DATE()order by MyDate;"
где моя ошибка?
0
shanemac51
Модератор
Эксперт MS Access
7818 / 3031 / 434
Регистрация: 07.08.2010
Сообщений: 8,250
Записей в блоге: 2
15.01.2017, 01:24 8
Visual Basic
1
2
3
4
s1 = "SELECT DateDiff('s', CDate(('01.01.1950 00:00:00')),CDate(MyDate)) AS kd, Model "
s1=s1 & " FROM Persons_0 
s1=s1 & " WHERE DateValue(MyDate)>=DATE()
s1=s1 & " order by MyDate;"
или удваивание кавычек или одинарные кавычки и пробела перед order нет
1
mobile
Эксперт MS Access
22934 / 13005 / 2694
Регистрация: 28.04.2012
Сообщений: 14,237
15.01.2017, 01:26 9
Кавычки внутри кавычек надо либо удваивать, либо заменять апострофами. Апострофами проще
Visual Basic
1
2
3
4
s1 = "SELECT DateDiff('s', CDate('01.01.1950 00:00:00'),CDate(MyDate)) AS kd, Model " _
& " FROM Persons_0 " _
& " WHERE DateValue(MyDate)>=DATE() " _
& " order by MyDate;"
Добавлено через 36 секунд
Аппаздал
1
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 01:47  [ТС] 10
Спасибо
код изменил- краснота пропала
но теперь получаю
Преобразование формата Дата/Время в другое представление
0
shanemac51
Модератор
Эксперт MS Access
7818 / 3031 / 434
Регистрация: 07.08.2010
Сообщений: 8,250
Записей в блоге: 2
15.01.2017, 01:51 11
странная строчка
Visual Basic
1
s1=s1 & " WHERE DateValue(MyDate)>=DATE()
я бы подумала, что нужна
Visual Basic
1
s1=s1 & " WHERE MyDate>=DATE()
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 02:02  [ТС] 12
Изменил код но все осталось как прежде
а это процедура где я пытаюсь реализовать задумку
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Private Sub btnTxt_Click()
On Error GoTo Err_btnTxt_Click
Dim s1
Dim rst As DAO.Recordset
s1 = "SELECT DateDiff('s', CDate(('01.01.1950 00:00:00')),CDate(MyDate)) AS kd, Model "
s1 = s1 & " FROM Persons_0 "
s1 = s1 & " WHERE DateValue(MyDate)>=DATE()"
 
Open "d:\cccc\databasa_1\Исходники\000\TV_DATABAZA_1.1\aaa.txt" For Output As #1 
Set rst = CurrentDb.OpenRecordset(s1)
Dim kd
Do While rst.EOF = False
Print #1, rst!kd, rst!Model
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
Reset
  
 
Exit_btnTxt_Click:
    Exit Sub
 
Err_btnTxt_Click:
    MsgBox Err.Description
    Resume Exit_btnTxt_Click
    
End Sub
0
shanemac51
Модератор
Эксперт MS Access
7818 / 3031 / 434
Регистрация: 07.08.2010
Сообщений: 8,250
Записей в блоге: 2
15.01.2017, 02:08 13
попробуйте убрать DateValue ---оно явно не в тему

она переводит текстовую дату в тип дата

пример ...... у вас явно не этот случай(или все же тот)
Visual Basic
1
2
Dim MyDate
MyDate = DateValue("February 12, 1969")    ' Return a date
что в вашем поле MyDate, какой формат, как набит

может вам надо
Visual Basic
1
2
3
s1 = "SELECT DateDiff('s', CDate(('01.01.1950 00:00:00')),MyDate) AS kd, Model "
s1 = s1 & " FROM Persons_0 "
s1 = s1 & " WHERE MyDate>=DATE()"
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 02:20  [ТС] 14
поле MyDate в таблице полный формат Дата/Время
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 02:26  [ТС] 15
Теперь вот так
Название: Б4.JPG
Просмотров: 40

Размер: 5.3 Кб
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 02:31  [ТС] 16
Цитата Сообщение от markusdod Посмотреть сообщение
поле MyDate в таблице полный формат Дата/Время
16.11.2016 20:45:15
0
mobile
Эксперт MS Access
22934 / 13005 / 2694
Регистрация: 28.04.2012
Сообщений: 14,237
15.01.2017, 03:27 17
markusdod, после формирования строки SQL, напишите вывод ее в область отладки (Immediate), скопируйте и выполните в конструкторе запросов в режиме SQL. Часто этот прием позволяет быстро найти ошибку
Visual Basic
1
2
3
4
5
s1 = "SELECT DateDiff('s', CDate('01.01.1950 00:00:00'),CDate(MyDate)) AS kd, Model " _
& " FROM Persons_0 " _
& " WHERE DateValue(MyDate)>=DATE() " _
& " order by MyDate;"
debug.print s1
Если ошибку не найдете, выложите таблицу с небольшим количество данных на форум
0
snipe
2873 / 982 / 222
Регистрация: 07.08.2013
Сообщений: 2,461
15.01.2017, 03:49 18
Цитата Сообщение от markusdod Посмотреть сообщение
делаю запрос--все работает как и нужно
а можно посмотреть текст того о чем говорится в этой фразе

и еще а чего там делает точка с запятой в конце строки sql
0
markusdod
9 / 9 / 0
Регистрация: 07.12.2012
Сообщений: 144
15.01.2017, 04:36  [ТС] 19
вот этот запрос я делаю в построителе запросов
SQL
1
2
3
4
SELECT DateDiff("s", CDate(("01.01.1950 00:00:00")),CDate(MyDate)) & "-1" AS kd, Model
FROM Persons_0
WHERE DateValue(MyDate)>=DATE()
ORDER BY Telefon;
Добавлено через 3 минуты
и здесь я получаю тот результат который мне нужен

Добавлено через 2 минуты
SQL
1
2
3
4
SELECT DateDiff("s", CDate(("01.01.1950 00:00:00")),CDate(MyDate)) & "-1" AS kd, Model
FROM Persons_0
WHERE DateValue(MyDate)>=DATE()
ORDER BY MyDate;
Вот так как то
0
snipe
2873 / 982 / 222
Регистрация: 07.08.2013
Сообщений: 2,461
15.01.2017, 04:38 20
Так сохраните этот запрос
а в коде обращайтесь к этому запросу

Добавлено через 1 минуту
SQL
1
SELECT a1.* FROM [Имя сохраненного запроса] AS a1
0
15.01.2017, 04:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2017, 04:38

Фильтр для формата поля "Дата и время"
Привет.Как сделать фильтр для формата поля "Дата и время". Можеть есть у...

Как разделить колонку с форматом Дата/время на две - Дата и время
Здравствуйте. Подскажите пожалуйста, как разделить колонку с форматом...

Преобразование формата даты в числовой формат
Подскажите пож-ста,как преобразовать формат времени в числовой,например формат...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru