Февр. 222008
 

Тази вечер реших да експериментирам на тема салата.

За основа взех две зелени салати, които измих внимателно и нараязах добре. После нарязах на ситно 10-12 сравнително дербни кивита и ги сложих вътре. Добавих 2 малки консерви риба тон и две пакетчета кубети (с подправки). Поръсих обилно с печен сусам и залях със зехтин и лимонов сос. Разбърках цялата смес.

Получи се мнооого добре.

С нетърпение очаквам да се върне Тя и да седнем да вечеряме. Дано й хареса…

p.s. Кубетите идват много и става тежичка. Другият път ще сложа само едно пакетче, при това само отгоре (без да разбърквам и тях).

 Posted by at 20:41

Беше отдавна…

 Общи  Коментарите са изключени за Беше отдавна…
Февр. 222008
 

Според документацията, типът данни DATE в Oracle поддържа дати от 01.01.4712 пр. Хр. до 31.12.9999. Това за 9999 година изглежда логично – гарантира, че годините ще бъдат събрани в 4 цифри (има да си блъскат главата на 01.01.10000…). Интересно, обаче, кой е предложил годината, избрана за долна граница – 4712 пр. Хр. и защо точно нея.

Човекът, предложил да се използва тази година за начало на епохата се казва Joseph Justus Scaliger. През далечната 1583 година, по време на Григорианската календарна реформа, Joseph Scaliger изчислил кога за последно са имали общо начало трите циклъла, използвани в юлиянският календар. Оказало се,че това е било на 01.01.4713 г. пр. Хр. Тъй като това се пада далече преди всички интересни за науката през 16 век събития, Joseph Scaliger решил датите са се броят точно от този ден, като се записва броят дни след него. Такова съвпадение се пада веднъж на 7980 години (повече – тук). Tова е най-старото влияние върху типа DATE в Oracle.

А защо в Oracle се ползва 4712 г. пр. Хр., а не 4713? Въпрос на начин на изчисление. Проблема е, че в календара няма година 0:

sql> alter session set nls_date_format='DD.MM.YYYY BC';
alter session set succeeded.

sql> select to_date('01.01.0001 AD') my_date from dual;
MY_DATE
-------------------------
01.01.0001 AD

sql> select to_date('01.01.0001 AD') - 1 my_date from dual;
MY_DATE
-------------------------
31.12.0001 BC

Това показва, че денят преди 01.01.0001 AD е точно 31.12.0001 BC. От друга страна, между двете дати има не 1, а 367 дни:

sql> select to_date('01.01.0001 AD')- to_date('31.12.0001 BC') num_days from dual
NUM_DAYS
----------------------
367

Този бъг води до грешка от точно една година при изчисляването на юлиянските дни.

 Posted by at 14:42