Автор Тема: Некоторые полезные приемы в SQL  (Прочитано 22567 раз)

nlive

  • Гость
Некоторые полезные приемы в SQL
« : 10 Июнь 2012, 10:21:38 »
Q: Перенос данных из одной таблицы в другую по условию . Как сделать ?

A: Очень просто:
Код: sql
update table1,table2 set table1.field=table2.some_field where table1.id=table2.id

Q: Как пронумеровать столбец по порядку в mysql

A:
Код: sql
SET @rownum=0; 
 UPDATE [table] t, (SELECT @rownum:=@rownum+1 rownum, [table].* FROM [table]) r
 SET t.[field] = r.rownum
 WHERE (t.[primary_key] = r.[primary_key])

crazy_man

  • Пользователь
  • **
  • Сообщений: 68
Некоторые полезные приемы в SQL
« Ответ #1 : 05 Апрель 2018, 16:35:40 »
Преобразование даты Oracle в формат datetime в mysql (для импорта табличек)
Код: sql
select to_char(t2.cust_date, \'yyyy-mm-dd hh24:Mi:SS\') from table2 t2

crazy_man

  • Пользователь
  • **
  • Сообщений: 68
Некоторые полезные приемы в SQL
« Ответ #2 : 05 Апрель 2018, 16:39:23 »
Отбросить время у даты (mysql), т.е.
2016-08-31 17:11:16 => 2016-08-31 00:00:00

Код: sql
select m.CUST_DATE,cast(FROM_DAYS(TO_DAYS(m.CUST_DATE)) as datetime) from test.tdc_20180504  m

Отбросить время у даты (oracle)
Код: sql
select t2.cust_date, to_char(trunc(t2.cust_date), \'dd.mm.yyyy hh24:Mi:SS\') from test.tdc_20180504 t2, 

где:
to_char(trunc(t2.cust_date), \'dd.mm.yyyy hh24:Mi:SS\') - вернёт дату в varchar
trunc(t2.cust_date) - вернет обрезанную дату (без времени) в формате date

crazy_man

  • Пользователь
  • **
  • Сообщений: 68
Некоторые полезные приемы в SQL
« Ответ #3 : 03 Май 2018, 14:59:03 »
-- узнать дату создания таблички в Oracle
select created from dba_objects where owner=upper(\'...\') and object_name=upper(\'....\') and object_type=\'TABLE\';