def QueryMySql(query):
	# Create object for internal database methods (mySQL)
	mysqlDb = MySqlTask(config.mysql_username, config.mysql_password, config.mysql_host, config.mysql_database)
	mysqlDb.connect()

	results = mysqlDb.select_query(query)

	mysqlDb.close()

	return results
    else:
        minuteOffset = float(offset[1:]) * .6
        return str(timeToConvert + timedelta(minutes=minuteOffset))

if __name__ == "__main__":
    logging.info("Running incremental Zendesk export...")

    # Create object for Zendesk queries
    zd = ZendeskTask(config.zenURL, config.zenAgent, config.zenPass, config.zenToken)
    
    # Create object for internal database methods (mySQL)
    zendeskDb = MySqlTask(config.zendeskMySql['username'],
                          config.zendeskMySql['password'],
                          config.zendeskMySql['host'],
                          config.zendeskMySql['database'])
    zendeskDb.connect()

    # Grab the last time Accounts were successfully updated
    start_time = zendeskDb.pull_job_timestamp("INCREMENTAL_EXPORT")

    logging.info("INCREMENTAL_EXPORT: start_time={0}".format(start_time))
    try:
        tickets = zd.get_tickets(start_time)

    except Exception, err:
        logging.exception(err)
    #print tickets

    dbQuery = ("INSERT INTO tickets "
                "VALUES (%(ticket_id)s, %(generated_timestamp)s, "
                    "%(req_name)s, %(req_id)s, %(req_external_id)s, "
			logging.warning("Retries left: {0}".format(retry))
			time.sleep(2) # Sleep 2 seconds before retrying
	
	user_list = ConfigParser.ConfigParser()
	user_list.optionxform = str
	
	path = os.path.dirname(os.path.realpath(__file__))
	user_list.read(path+"/user_list.ini")
	
	print "Users to query /usage: {0}".format(user_list.options("Users"))

	for username in user_list.options("Users"):
		api_key = user_list.get("Users", username)
		
		# Connect to the mysql database
		mysql.connect()

		# Create object for DataSift methods
		ds = datasift.User(username, api_key)

		retry = 3
		while retry:
			try:
				usage = ds.get_usage('day')
				logging.info("Getting /usage for user: {0}".format(username))
				print "Getting /usage for user: {0}".format(username)
				retry = 0
			except Exception, err:
				logging.error("Encountered getting /usage for user: {0}. Error message: {1}".format(username, err))
				retry -= 1
				logging.warning("Retries left: {0}".format(retry))
# Pull from SFDC
query = "Select Id, DataSift_UserID__c, Name FROM Account WHERE Account_Status__c = 'Customer' and DataSift_UserID__c != '' and LastModifiedDate > {0}".format(startTime)

results = sfdc.sfdc_query(query)

if results['count'] > 0:
	for account in results['results']:
		if account['Id'] not in sfdc_update:
			sfdc_update[account['Id']] = []
		ids = re.findall(r'[0-9]+', account['DataSift_UserID__c'])
		if len(ids):
			for i in ids:
				# Query Users table
				mquery = "SELECT user_id, email, username FROM users WHERE user_id = '{0}'".format(i)
				mysqlDb.connect()
				r = mysqlDb.select_query(mquery)

				if len(r):
					data = {
						'user_id' 	: r[0][0],
						'email'		: r[0][1],
						'username'	: r[0][2],
						'name'		: account['Name'].decode('utf-8'),
						'accountid' : account['Id']
					}
					print data
					insert = 	"""
								INSERT into account_link 
								(datasift_user_id, datasift_username, datasift_email_address, accountid, accountname)
								VALUES ('%(user_id)s', '%(username)s', '%(email)s', '%(accountid)s', '%(name)s')