Where is the $endFromDatabase variable coming from? That part isn't clear in your post.
To demonstrate subtracting DateTime objects, see the example below.
$TimeSpan = [DateTime]'2014-01-10' - [DateTime]'2014-01-06';
You will receive a System.TimeSpan as a result from the operation, so you can explore members such as:
$TimeSpan.TotalDays;
My guess is that you just need to fix the value in the $endFromDatabase variable, so that it can be cast into a System.DateTime object.
Background
Subtracting a [DateTime] object from another [DateTime] object works, because the [DateTime] class overloads the subtraction operator, which results in the op_subtraction Intermediate Language (IL) method. You can examine this in a .NET object explorer tool, such as .NET Reflector.
You'll notice that there is a second overload of the subtraction operator, which allows you to subtract a [TimeSpan] object from a [DateTime] object.
