Конвертировал строку в формат времени
определил переменные в прин выводит корректно
package main
//https://4gophers.ru/articles/go-i-sql-bazy-dannyh/#.WZShtvlSCUl работа с БД Pg
import (
"fmt" ///пакет стандартной библиотеки Базовый пакет для форматирования функций ввода
"time" ///пакет для аботы со временем
"database/sql" ///пакет для работы с БД
_ "github.com/lib/pq" //пакет для работы с БД
"log" ///пакет для логирования
"os" //системный пакет
)
////указываю постоянные значения подключения к БД и сокету FreeSWITCH
const (
DB_HOST = "127.0.0.1"
DB_USER = "postgres"
DB_PASSWORD = "postgres"
DB_NAME = "freeswitch"
)
////обьявляю глобальные переменные
var (
err error
id int
client int
id_dispach int
db *sql.DB ///
interval_time_start string
interval_time_end string
current_time time.Time ///тип данных время
convert_time_start time.Time
convert_time_end time.Time
)
/////функция проверки на ошибки
func checkErr(err error) {
if err != nil {
fmt.Println(err)
}
}
///Функция отправки SQL запросов в БД
func sql_req() {
rows, err := db.Query("SELECT client,id FROM dialer_golang WHERE state = 'called' ORDER BY RANDOM() LIMIT 1")
if err != nil {fmt.Println(err)}
defer rows.Close()
for rows.Next() {
rows.Scan(&client, &id) ///декодирую элементы которые хочу получить в БД
dialer_rows , err := db.Query("SELECT id_dispatch FROM dialer_golang WHERE client = $1 and state = 'called'",client)
if err != nil {fmt.Println(err)
return
}
defer dialer_rows.Close() ///закрываем коннект к Базе данных
for dialer_rows.Next() {
dialer_rows.Scan(&id_dispach)
}
data_rows , err := db.Query("SELECT interval_time_start,interval_time_end FROM dialer_golang WHERE client = $1 and state = 'called' ",client)
checkErr(err) ///функция обработки ошибок
defer data_rows.Close() ///закрываем коннект к Базе данных
for data_rows.Next() {
data_rows.Scan(&interval_time_start,&interval_time_end)
}
}
}
func main() {
//time.Sleep(300 * time.Millisecond) ///команда задержки sleep
// подключение к Базе данных
db_property := "host=" + DB_HOST + " user=" + DB_USER + " password=" + DB_PASSWORD + " dbname=" + DB_NAME + " sslmode=disable"
db, err = sql.Open("postgres", db_property) ///https://toster.ru/q/452264
err = db.Ping()
if err != nil {fmt.Println("Error: IS NOT Connect for " + DB_NAME + " Host: " + DB_HOST)} else {fmt.Println("Database " + DB_NAME + " Host: " + DB_HOST + " Connect is GOOD")} ///проверка на ошибку если вернет ошибку то выведет то что коннекта к бд нет
defer db.Close() ///закрываем коннект к Базе данных
sql_req() ///вызываю функцию без параметров
////вывожу текущее время которое есть в системе
current_time := time.Now().Format("15:04:05") ///Вывожу текущее время в нужном мне формате , так чтобы формат БД и формат вывода был единым
convert_time_start , err = time.Parse("15:04:05", interval_time_start) ///онвертирую значение в тип данный время чтобы потом корректно сравнить
convert_time_end , err = time.Parse("15:04:05", interval_time_end) ///онвертирую значение в тип данный время чтобы потом корректно сравнить
time_end := convert_time_end.Format("15:04:05")
time_start := convert_time_start.Format("15:04:05")
fmt.Println("Время",time_start,time_end,current_time)
////после того как получуили все необходимые данные для вызова необходимо сделать проверку попадает ли данное время в укаханный интервал
if time_start.Before(time_current) && time_end.After(time_current) {
fmt.Println("Мы попали в указанный интервал ")
} else {
fmt.Println("не попали в указанный интервал ")}
f, err := os.OpenFile("daemon_go.log", os.O_WRONLY|os.O_CREATE|os.O_APPEND, 0644)
if err != nil {
log.Fatal(err)
}
defer f.Close()
log.SetOutput(f)
log.Println("ID Клиента",id,"Номер клиента",client,"DISPACH",id_dispach,"Время начала обзвона ",convert_time_start,"Время окончания обзвона",convert_time_end,"Текущее время в формате Час Минута Секунда",current_time) ///////получил все переменные которые будут нужны для системы автообзвона
}
Выводит в принт если закоментировать if проверки на время
[root@p441022 script]# go run daemon.go
Database freeswitch Host: 127.0.0.1 Connect is GOOD
Время 02:00:00 23:00:00 21:26:44
Если if оставить
[root@p441022 script]# go run daemon.go
# command-line-arguments
./daemon.go:80: time_start.Before undefined (type string has no field or method Before)
./daemon.go:80: undefined: time_current
./daemon.go:80: time_end.After undefined (type string has no field or method After)
./daemon.go:80: undefined: time_curren