Страницы: 1
RSS
Округлить "Дата время" до меньшего целого значения в запросе
 
Всем здравствуйте. Пытаюсь получить внешние данные из Microsoft Query с помощью запроса. На основании Столбца "Дата время" надо добавить столбец "Дата", в котором была бы только дата. Т.е. округлить  "Дата время" (например 15.02.2015  19:12:00) до меньшего целого значения (т.е. 15.02.2015)
Попробовал в Режиме SQL вставить функцию FLOOR, Microsoft Query выдало сообщение "Неопределенная функция 'FLOOR' в выражении."
Код
SELECT База_данных.`Дата время`, FLOOR(База_данных.`Дата время`) AS 'Дата'
FROM `D:\Загрузки\База данных`.База_данных База_данных
GROUP BY База_данных.`Дата время`

Пробовал LEFT(База_данных.`Дата время`,10)-получается текст.
Подскажите как можно Округлить "Дата время" до меньшего целого значения в запросе.
Изменено: agregator - 28.01.2016 17:25:49
Excel всемогущий.
 
Код
DATE_FORMAT(База_данных.`Дата время`,'%Y-%m-%d')
 
Dima S, спасибо за ответ, но Microsoft Query выдало сообщение "Неопределенная функция 'DATE FORMAT' в выражении."
Попробовал
Код
 DATEPART(YY,База_данных.`Дата время`)
Microsoft Query выдало сообщение "Слишком мало параметров. Требуется 1."
Если кто нибудь знает, подскажите что это за параметр и как его записать.
Если пишу  
Код
DATEPART(DD-MM-YY, База_данных.`Дата время`)
то  сообщение "Слишком мало параметров. Требуется 3."
Excel всемогущий.
 
Ну я ж не от фонаря написал - у меня работает.
Офис какой у вас?
 
Dima S, у меня Офис 2010. Изменил запрос в Блокноте:
Код
XLODBC
1
DBQ=D:\Загрузки\База данных.xls;DefaultDir=D:\Загрузки;Driver={Driver do Microsoft Excel(*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;
SELECT База_данных.`Дата время`, DATE_FORMAT(База_данных.`Дата время`,'%Y-%m-%d') AS 'Дата'  FROM `D:\Загрузки\База данных`.База_данных База_данных  GROUP BY База_данных.`Дата время`


Дата время   Дата

При выполнении запроса Microsoft Excel выдает сообщение "[Microsoft] [Драйвер ODBC Excel] Неопределенная функция 'DATE_FORMAT в выражении."
Dima S, скопируйте пожалуйста ваш запрос из Блокнота. Может у нас разные Driver.
Excel всемогущий.
 
Только сейчас обратил внимание что у вас запрос к другому ексель-файлу)) У меня к MySQL.
Попробуйте тогда просто
Код
Format(поле_даты, 'yyyy.mm.dd') 
- у меня проканало)
 
Dima S, у меня тоже работает
Код
Format(поле_даты, 'dd.mm.yyyy')
результат выглядит как дата, но Excel его воспринимает как текст. Пробовал
Код
Format(поле_даты, 'dd.mm.yyyy')+0
Microsoft Excel выдает сообщение "[Microsoft][Драйвер ODBC Excel] Несоответствие типов данных в выражении условия отбора."
Мне надо, чтобы результат был или дата или целое число (округленное до меньшего целого значения). Ведь для Excel 15.02.2015 19:12:00 = 42050,8, а 42050 = 15.02.2015.
Может можно
Код
 База_данных.`Дата время`минус Время
Изменено: agregator - 01.02.2016 15:57:51
Excel всемогущий.
 
Код
int(поле_даты)
 
Доброе время суток
Запрос из База.dqy
Код
XLODBC
1
DBQ=D:\Загрузки\База данных.xls;DefaultDir=D:\Загрузки;Driver={Driver do Microsoft Excel(*.xls)};DriverId=790;FIL=excel 8.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=1;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;
SELECT DateSerial(Year(`Дата время`),Month(`Дата время`),Day(`Дата время`)) As 'Дата', Count(`Дата время`) AS 'Счёт'  FROM `D:\Загрузки\База данных`.База_данных db  GROUP BY DateSerial(Year(`Дата время`),Month(`Дата время`),Day(`Дата время`))


Дата время   Дата

Успехов.
Изменено: Андрей VG - 06.02.2016 06:15:30
 
Dima S и Андрей VG, большое спасибо за помощь. Оба кода работают как надо.
Excel всемогущий.
Страницы: 1
Наверх